工作时遇到的,随便写了个,欢迎高手点评:
核心代码:
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 [违例类型] [违例说明]