用 Java 计算两个日期之间的工作日数
对于那些寻求 Java 代码片段来计算工作日数的人(不包括周末),2011 年的一个流行响应提出了一个利用 Calendar 类的解决方案。尽管 Java 8 随后通过 java.time 包引入了现代日期时间处理功能,但以下代码演示了如何使用 Calendar API 实现此计算:
<code class="java">public static int getWorkingDaysBetweenTwoDates(Date startDate, Date endDate) { Calendar startCal = Calendar.getInstance(); startCal.setTime(startDate); Calendar 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 { //excluding start date 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()); //excluding end date return workDays; }</code>
请注意,此解决方案遵循“连续” " 计数方法,不包括开始日期和结束日期本身。例如,如果开始和结束分别是星期一和星期五,则该方法将返回 4。
以上是Java中如何计算两个日期之间的工作日数?的详细内容。更多信息请关注PHP中文网其他相关文章!