问题描述:
客户要求计算两个日期之间的工作天数,几经周折之下想到了一个反过来计算的方法,为什么不求出两个日期之间的假期和两个日期之间的实际天数,然后来进行相减操作呢?
解决方法:
由于函数不包含计算假期的函数,所以得通过自定义函数实现
主要思路:
1写一个获得日期的下一天的函数
2 写一个判断日期是否周末的函数
3 通过两个数组(a 特殊周末数组 b 国家假期数组)来对起始日期到结束日期的循环遍历判断是否属于这两个数组
部分代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class hlDay {
/**
* 获得指定日期的后一天
* @param cal
* @return
*/
public static String getNextDay(String cal, int i){
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat(“yyyy/MM/dd”).parse(cal);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day=c.get(Calendar.DATE);
c.set(Calendar.DATE,day+i);
String dayAfter=new SimpleDateFormat(“yyyy/MM/dd”).format(c.getTime());
return dayAfter;
}
//判断是否是周末
public static boolean isWeekend(String cal) {
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat(“yyyy/MM/dd”).parse(cal);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
if(c.get(Calendar.DAY_OF_WEEK)-1 == 0 || c.get(Calendar.DAY_OF_WEEK)- 1 == 6) {
return true;
} else{
return false;
}
}