Java:计算一个日期加上指定工作日数(排除周六周日和一系列节日)

这篇博客介绍了一个Java方法,用于计算一个日期加上指定工作日数,同时排除周六、周日和预设的节假日。代码中包含了检查日期是否为节假日的逻辑以及初始化节日列表的示例。
摘要由CSDN通过智能技术生成

工作时遇到的,随便写了个,欢迎高手点评:

 

核心代码:

 

package www.sjjjob.com.date;

 

import java.util.ArrayList;

import java.util.Calendar;

import java.util.List;

/**

 * 日期公共函数

 * @author  shenjunjie

 * @version  [s001, 2010-11-19]

 * 

 * public static final int DAY_OF_WEEK_IN_MONTHget 和 set 的字段数字,指示当前月中的第几个星期。

 * 与 DAY_OF_WEEK 字段一起使用时,就可以唯一地指定某月中的某一天。

 * 与 WEEK_OF_MONTH 和 WEEK_OF_YEAR 不同,

 * 该字段的值并不 取决于 getFirstDayOfWeek() 或 getMinimalDaysInFirstWeek()。

 * DAY_OF_MONTH 1 到 7 总是对应于 DAY_OF_WEEK_IN_MONTH 1;8 到 14 总是对应于 DAY_OF_WEEK_IN_MONTH 2,

 * 依此类推。DAY_OF_WEEK_IN_MONTH 0 表示 DAY_OF_WEEK_IN_MONTH 1 之前的那个星期。

 * 负值是从一个月的末尾开始逆向计数,因此,一个月的最后一个星期天被指定为 DAY_OF_WEEK = SUNDAY, 

 * DAY_OF_WEEK_IN_MONTH = -1。因为负值是逆向计数的,所以它们在月份中的对齐方式通常与正值的不同。

 * 例如,如果一个月有 31 天,那么 DAY_OF_WEEK_IN_MONTH -1 将与 DAY_OF_WEEK_IN_MONTH 5 

 * 和 DAY_OF_WEEK_IN_MONTH 4 的末尾相重叠。

 */

public class DateUtil

{

    private static List <Calendar> holidayList;

    private static boolean holidayFlag;

 

    /**

     * 计算工作日

     * 具体节日包含哪些,可以在HolidayMap中修改

     * @param src 日期(源)

     * @param adddays 要加的天数

     * @exception throws [违例类型] [违例说明]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值