Java 获取两个日期之间的工作日工具类
2024-01-02 13:32:51
前言
一个简单的工具类,用于获取两个日期之间的工作日,由此可知工作日的天数和工作日的月号。
代码
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();
}
}
}
文章来源:https://blog.csdn.net/qq_24091555/article/details/135334673
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!