相关疑难解决方法(0)

计算工作日,包括假期

我需要计算两个日期之间的工作日.例如:我们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万
查看次数

标签 统计

calendar ×1

date ×1

java ×1