本文主要是介绍Java 获取两个日期之间的工作日工具类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
一个简单的工具类,用于获取两个日期之间的工作日,由此可知工作日的天数和工作日的月号。
代码
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;public class WorkDayUtils {/*** 获取两个日期之间的工作日* @param date1 开始时间* @param date2 结束时间* @return 工作日日期*/public static List<String> getWorkDays(String date1, String date2) {List<String> workDays = new ArrayList<>();if (StringUtils.isBlank(date1) || StringUtils.isBlank(date2)) {return workDays;}List<String> allDays = new ArrayList<>();int dayTime = 24 * 60 * 60 * 1000;long d1 = parseDate(date1).getTime();long d2 = parseDate(date2).getTime();while (d2 >= d1) {String time = DateFormatUtils.format(new Date(d1), "yyyy-MM-dd");allDays.add(time);d1 += dayTime;}Calendar calendar = Calendar.getInstance();for (String str : allDays) {calendar.setTime(parseDate(str));int week = calendar.get(Calendar.DAY_OF_WEEK);if (week != Calendar.SUNDAY && week != Calendar.SATURDAY) {workDays.add(str);}}return workDays;}public static Date parseDate(String dateStr) {try {return DateUtils.parseDate(dateStr, "yyyy-MM-dd");} catch (ParseException e) {throw new RuntimeException(e.getMessage();}}}
这篇关于Java 获取两个日期之间的工作日工具类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!