200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 使用java获取当前日期后几天内的工作日和节假日数

使用java获取当前日期后几天内的工作日和节假日数

时间:2023-08-29 22:11:47

相关推荐

使用java获取当前日期后几天内的工作日和节假日数

使用java获取当前日期后几天内的工作日和节假日数

目前的思路是如果需要获得两日期间有多少个工作日和节假日,那么可以从中找到规律,两日期间的工作日数一定等于n * 5 + m(n为两日期间完整周的数,而m则是不完整周中工作日的数量),例如:如果要计算10月10日到10月22日之间的工作日数,那么两日期间完整周的数就为1,因此不完整周那么就只剩下6天,那么我们就只需要知道这6天(这六天可以是开始起的6天,也可以是最后6天)中到底哪几天是工作日就行了。

/*** 获取当前时间之后n日中有多少个工作日和节假日** @param startDay 当前日期* @param num后n日* @return* @throws Exception*/public static String getWorkDayStart(Date startDay, int num) throws Exception {Calendar calendar = Calendar.getInstance();calendar.setTime(startDay);calendar.add(Calendar.DATE, num);//节假日数int holidayNum = 0;//工作日数int workdayNum = 0;int number = (num + 1) % 7;if(number != 0){for(int i = 0;i < number;i++){if(calendar.get(Calendar.DAY_OF_WEEK) == 7 || calendar.get(Calendar.DAY_OF_WEEK) == 1){holidayNum++;}else {workdayNum++;}calendar.add(Calendar.DATE, -1);}}//当前未排除法定节假日和法定工作日。holidayNum = holidayNum + 2 * (num - number + 1) / 7;workdayNum = workdayNum + 5 * (num - number + 1) / 7;return holidayNum + "," + workdayNum;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。