java 计算工作日工具类
生活随笔
收集整理的這篇文章主要介紹了
java 计算工作日工具类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.b2bwings.cqjy.common.util;import org.apache.commons.lang.time.DateFormatUtils;import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;public class WorkDayCalculateUtils {/*** 特殊的工作日(星期六、日工作)*/public static List<String> SPECIAL_WORK_DAYS = new ArrayList<>();/*** 特殊的休息日(星期一到五休息)*/public static List<String> SPECIAL_REST_DAYS = new ArrayList<>();/*** 休息日*/public static List<String> REST_DAYS = new ArrayList<>();/**** @param currentDate 當前時間* @param days 跳過多少工作日* @param includingToday 是否包含今天 0否 1是* @return*/public static Date getDate(Date currentDate, int days, int includingToday) {if (days == 0) {return currentDate;}Calendar calendar = Calendar.getInstance();calendar.setTime(currentDate);int step = days < 0 ? -1 : 1;int i = includingToday;int daysAbs = Math.abs(days);while (i <= daysAbs) {calendar.add(Calendar.DATE, step);i++;if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY|| calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {// 周六日如果上班就算1個工作日if (!SPECIAL_WORK_DAYS.contains(DateFormatUtils.format(calendar.getTime(), "yyyy-MM-dd"))) {i--;}} else {// 周1到周五休息就算1個休息日if (SPECIAL_REST_DAYS.contains(DateFormatUtils.format(calendar.getTime(), "yyyy-MM-dd"))) {i--;}}}return calendar.getTime();}}
總結
以上是生活随笔為你收集整理的java 计算工作日工具类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 筑泰防务受邀参加公安无线通信与移动警务技
- 下一篇: Java代码 微信公众号推送(代码详细)