相关疑难解决方法(0)

如何在Android Project中使用ThreeTenABP

我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.

对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:

>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

datetime android android-gradle-plugin threetenbp threetenabp

169
推荐指数
3
解决办法
2万
查看次数

如何在Java中将当前日期添加到工作日?

如何在Java中将当前日期添加到工作日?

public Calendar addBusinessDate(Calendar cal, int days) {
//
// code goes over here
//
}
Run Code Online (Sandbox Code Playgroud)

注意:

它也应该考虑周末.

java algorithm

13
推荐指数
4
解决办法
3万
查看次数

计算星期六和星期日的数量

如何计算php中两个日期之间的星期六和星期日的数量?

为此目的是否有任何内置功能?

php date

10
推荐指数
1
解决办法
1万
查看次数

使用Java 8计算两个日期之间的天数,同时忽略一周中的某些天

下面我有3种方法.第一个很简单.它只计算总天数.但是,第二个不仅会计算天数,还会忽略传递给方法的星期几.

我的问题是第三种方法并不总是正确的.它应该匹配第二种方法.我猜它与闰年有关,因为当它不正确时差异通常为+ = 3 | 4.

附加信息

我试图以weekday(serial_number,[return_type])某种方式模拟Excel的公式.

serial_number = startDate:Date - daysOfWeekToInclude:Array<Integer>
Run Code Online (Sandbox Code Playgroud)

  | A       | B                                                  | C
  +---------+----------------------------------------------------+-----------
1 | Start   | =DATE(2014,9,7)                                    | 9/7/2014                 
2 | End     | =DATE(2025,6,13)                                   | 6/13/2025                    
3 | Include | ={1,2,4,6} (Mon, Tue, Thu, & Sat)                  | <Disp Only>
4 | Days    | =SUM(INT((WEEKDAY($B$1-{1,2,4,6},1)+$B$2-$B$1)/7)) | 2248 
Run Code Online (Sandbox Code Playgroud)

这里有关于此功能的更多信息:如何计算/计算Excel中两个日期之间的天数?

原始图像

在此输入图像描述

方法

  1. 只需计算两个日期之间的天数.

    public static int simpleDaysBetween(final LocalDate start,
            final LocalDate end) {
        return (int) ChronoUnit.DAYS.between(start, end);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用循环计算天数,忽略一周中的某些天.

    public static …
    Run Code Online (Sandbox Code Playgroud)

java performance java-8 java-time

7
推荐指数
1
解决办法
5634
查看次数

计算工作日,包括假期

我需要计算两个日期之间的工作日.例如:我们7月4日有假期(在美国).所以,如果我的日期是date1 = 07/03/2012 date2 = 07/06/2012

没有工作日b/w这些日期应该是1,因为7月4日是假日.

我有一个下面的方法来计算工作日,这只会计算周末而不是假期.有没有办法计算假期....请帮我这个.

  public static int getWorkingDaysBetweenTwoDates(Date startDate, Date endDate) {  
    Calendar startCal;  
    Calendar endCal;  
    startCal = Calendar.getInstance();  
    startCal.setTime(startDate);  
    endCal = Calendar.getInstance();  
    endCal.setTime(endDate);  
    int workDays = 0;  

    //Return 0 if start and end are the same  
    if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) {  
        return 0;  
    }  

    if (startCal.getTimeInMillis() > endCal.getTimeInMillis()) {  
        startCal.setTime(endDate);  
        endCal.setTime(startDate);  
    }  

    do {  
        startCal.add(Calendar.DAY_OF_MONTH, 1);  
        if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY   
       && startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {  
            ++workDays;  
        }  
    } while (startCal.getTimeInMillis() < endCal.getTimeInMillis());  

    return workDays;  
}
Run Code Online (Sandbox Code Playgroud)

java calendar date

6
推荐指数
3
解决办法
2万
查看次数

如何计算JAVA中两个不同日期之间的工作日(不包括周末)?

我的要求是计算给定两个日期之间的天数,不包括星期六星期日.

例:

Start date - 10/09/15 and End date 18/09/15

Result: 7
Run Code Online (Sandbox Code Playgroud)

日期DD/MM/YY格式.

码:

import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;


public class DaysCounter {
    private String startDate;
    private String endDate;

    public void calculateDate(){
        @SuppressWarnings("resource")
        Scanner in=new Scanner(new InputStreamReader(System.in));

        System.out.println("Enter the starting date (DD/MM/YY) :");
        startDate=in.next();

        System.out.println("Enter the End date (DD/MM/YY) :");
        endDate=in.next();

        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        try
        {
            Calendar start = Calendar.getInstance();
            start.setTime(sdf.parse(startDate));
            Calendar end = Calendar.getInstance();
            end.setTime(sdf.parse(endDate));
            int …
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
4668
查看次数

如何计算除周末java之外的两个日期之间的天数

嗨,我尝试这段代码有几天的工作(包括周末),所以我怎么能在两个日期之间排除周末?

public long getDifferenceDays(Date d1, Date d2) {
  long diff = d2.getTime() - d1.getTime();
  long diffDays = diff / (24 * 60 * 60 * 1000);
  return diffDays;
}
Run Code Online (Sandbox Code Playgroud)

java date

4
推荐指数
1
解决办法
2万
查看次数

如何在Java中的两个日期之间获得星期六和星期日

StartDate:  2016-05-8 20:16:00;
EndDate:    2016-05-30 20:16:00;


     public int saturdaysundaycount(Date d1, Date d2) {
                Calendar c1 = Calendar.getInstance();
                c1.setTime(d1);

                Calendar c2 = Calendar.getInstance();
                c2.setTime(d2);

                int sundays = 0;
                int saturday = 0;

                while (c1.after(c2)) {
                    if (c2.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || c2.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
                        sundays++;
                    saturday++;
                    c2.add(Calendar.DATE, 1);
                    c2.add(Calendar.DATE, 1);
                }
                System.out.println(sundays);

                return saturday + sundays;
            }
Run Code Online (Sandbox Code Playgroud)

在这个函数中,我试图获取两个日期之间周六和周日的总数。但是当我通过日期时,结果为零。请指出错误并提出更正建议。

java android

3
推荐指数
1
解决办法
3993
查看次数

计算两个日期之间的工作日数

我需要计算两个给定日期之间的工作日数
我将假期列表作为用户提供的数组列表。
因此,我可以调查日期之间的每一天,并检查它是否是工作日而不是联邦假日,如我在下面提供的代码(工作正常)

但这非常昂贵,假设有 12 个联邦假期,每天我都必须检查它不是周末,
所以如果我需要在 5 年之间计数,则需要 365 * 5 * 12 及其 21,000 次迭代!太疯狂了(甚至不包括工作日的计算)
有更好的方法吗?

package test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.time.DateUtils;

public class TestDiff {

    public static void main(String[] args) throws ParseException {
        DateFormat formatter = new SimpleDateFormat("MM/dd/yy");
        // add 4 years as an example
        Date fromDate = formatter.parse("11/06/2017"),toDate = formatter.parse("11/29/2017");// DateUtils.addDays(fromDate,365 * 4);
        int numberOfDaysCount=0;
        int daysBetween  = daysBetween(fromDate,toDate);
        Date caurDate = fromDate;

        for(int …
Run Code Online (Sandbox Code Playgroud)

java date

3
推荐指数
1
解决办法
8352
查看次数

如何在Android中查找当月的星期六和星期日?

我正在尝试禁用日历中的星期六和星期日。首先,我必须找到它。我尝试过,但无法获取。我在这里发布了代码。

 public int countWeekendDays() {
    Calendar calendar = Calendar.getInstance();

    calendar.set(Calendar.DAY_OF_WEEK, Calendar.DATE+1);
    int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

    int count = 0;
    for (int day = 1; day <= daysInMonth; day++) {
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.DATE+1, day);
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == Calendar.SUNDAY || dayOfWeek == Calendar.SATURDAY) {
            if(dayOfWeek==Calendar.SUNDAY)
                calendar.add(Calendar.DATE, Calendar.SUNDAY-1);
            else if(dayOfWeek==Calendar.SATURDAY)
                calendar.add(Calendar.DATE, Calendar.SATURDAY);

            disable.add(calendar.getTime());
        }

    }
    for(int i=0;i<disable.size();i++)
    {
        Log.e("***&***",disable.get(i).toString());
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

我需要获取当前月的星期六和星期日(说:Aug),但是我得到的结果是前一个月,即7月。

java datetime android-calendar

2
推荐指数
1
解决办法
1867
查看次数

Java中排除周末的日期差异计算

我对 Java 平台非常初学者和陌生。我有以下 3 个简单的 Java 日期差计算函数。我想在所有 3 种方法中排除以下计算中的周末。任何人都可以帮助如何在以下 dateDiff 计算中排除周末吗?

public static String getDatesDiff(String date1, String date2) {

    String timeDiff = "";
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date d1 = null;
    Date d2 = null;

    try {
        d1 = format.parse(date1);
        d2 = format.parse(date2);
        long diff = d2.getTime() - d1.getTime();
        timeDiff = ""+diff;
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
    return timeDiff;
}
Run Code Online (Sandbox Code Playgroud)
public static String getDatesDiffAsDays(String date1, String date2) {
    String timeDiff = ""; …
Run Code Online (Sandbox Code Playgroud)

java datediff date-difference

2
推荐指数
1
解决办法
1662
查看次数

计算两个日历日期之间的工作日差异

我试图找到两个日期之间的工作日计数(周末和时间必须忽略).我正在使用以下功能来做到这一点.但它给出了多种情况的错误结果,例如,如果startdate是周末还是enddate是周末.这是一个演示的例子,可以计算一天额外的一天.

2018-03-08 00:00:00.0和2018-04-22 01:37:29.887

计数返回32(应该是31,它也在考虑23-04-2018).请提供一些完美的解决方案/方法来做同样的事情.

private static int calculateDuration(Date startDate, Date endDate)
{
  Calendar startCal = Calendar.getInstance();
  startCal.setTime(startDate);
  startCal.set( Calendar.HOUR_OF_DAY, 0 );
  startCal.set( Calendar.MINUTE, 0 );
  startCal.set( Calendar.SECOND, 0 );
  startCal.set( Calendar.MILLISECOND, 0 );
  Calendar endCal = Calendar.getInstance();
  endCal.setTime(endDate);
  endCal.set( Calendar.HOUR_OF_DAY, 0 );
  endCal.set( Calendar.MINUTE, 0 );
  endCal.set( Calendar.SECOND, 0 );
  endCal.set( Calendar.MILLISECOND, 0 );
  int workDays = 0;

  if (startCal.getTimeInMillis() > endCal.getTimeInMillis())
  {
    startCal.setTime(endDate);
    endCal.setTime(startDate);
  }

  do
  {
    startCal.add(Calendar.DAY_OF_MONTH, 1);
    System.out.println("************"+Calendar.DAY_OF_WEEK);
    System.out.println("Before weekend condition"+Calendar.DAY_OF_WEEK+"Workdays="+workDays);

    if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && …
Run Code Online (Sandbox Code Playgroud)

java date weekday date-difference

1
推荐指数
1
解决办法
235
查看次数

Java日历:我想从日历中删除特定的星期几

更多细节我想摆脱一周的特定日子.

我的意思是:{星期六(1),星期日(2),星期一(3),星期二(4),星期三(5),星期四(6),星期五(7)}.

删除周日:{周六(1),周日(2),周一(3),周二(4),周三(5)}.

因此,我可以获得从特定开始日期到现在的排除天数的天数.

提示:我必须使用Java日历

*****问题是动态指定日期

java date-range weekday java-calendar

0
推荐指数
1
解决办法
493
查看次数