public class CalendarTest {
//节假日列表
private static List<Calendar> holidayList = new ArrayList<Calendar>();
//周末为工作日
private static List<Calendar> weekendList = new ArrayList<Calendar>();
/**
* @param args
* return void 返回类型
* throws
*/
public static void main(String[] args) {
try {

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar ca = Calendar.getInstance();
Date d = df.parse("2016-09-15");
ca.setTime(d);//设置当前时间

CalendarTest ct = new CalendarTest();
ct.initHolidayList("2016-09-15");//初始节假日
ct.initHolidayList("2016-09-16");//初始节假日
ct.initHolidayList("2016-09-17");//初始节假日

ct.initWeekendList("2016-09-18");//初始周末为工作日

boolean k = checkHoliday(ca);
System.out.println(k);

} catch ( Exception e) {
// TODO: handle exception
System.out.println(e.getClass());
e.printStackTrace();
}

}

/**
*
* 验证日期是否是节假日
* @param calendar 传入需要验证的日期
* @return
* return boolean 返回类型 返回true是节假日,返回false不是节假日
* throws
*/
public static boolean checkHoliday(Calendar calendar) throws Exception{

//判断日期是否是周六周日
if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY ||
calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){

//判断日期是否是节假日
for (Calendar ca : weekendList) {
if(ca.get(Calendar.MONTH) == calendar.get(Calendar.MONTH) &&
ca.get(Calendar.DAY_OF_MONTH) == calendar.get(Calendar.DAY_OF_MONTH)&&
ca.get(Calendar.YEAR) == calendar.get(Calendar.YEAR)){
return false;
}
}

return true;
}
//判断日期是否是节假日
for (Calendar ca : holidayList) {
if(ca.get(Calendar.MONTH) == calendar.get(Calendar.MONTH) &&
ca.get(Calendar.DAY_OF_MONTH) == calendar.get(Calendar.DAY_OF_MONTH)&&
ca.get(Calendar.YEAR) == calendar.get(Calendar.YEAR)){
return true;
}
}

return false;
}

/**
*
* 把所有节假日放入list
* @param date 从数据库查 查出来的格式2016-05-09
* return void 返回类型
* throws
*/
public void initHolidayList(String date){

String [] da = date.split("-");

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, Integer.valueOf(da[0]));
calendar.set(Calendar.MONTH, Integer.valueOf(da[1])-1);//月份比正常小1,0代表一月
calendar.set(Calendar.DAY_OF_MONTH, Integer.valueOf(da[2]));
holidayList.add(calendar);
}

/**
* 初始化周末被调整为工作日的数据
*/
public void initWeekendList(String date){
String [] da = date.split("-");

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, Integer.valueOf(da[0]));
calendar.set(Calendar.MONTH, Integer.valueOf(da[1])-1);//月份比正常小1,0代表一月
calendar.set(Calendar.DAY_OF_MONTH, Integer.valueOf(da[2]));
weekendList.add(calendar);
}

}

最新文章

  1. h1、h2、h3标签及strong标签对页面seo的影响
  2. iscroll修改
  3. 控制Wordpress对搜索引擎的可见性
  4. apt-get remove, apt-get autoremove和aptitude remove的区别
  5. CODEVS1533 互斥的数(哈希表)
  6. servlet 和filter 抛出404等异常
  7. css3中定义required,focus,valid和invalid样式
  8. [搜片神器]BT管理程序数据库速度调试优化问题
  9. 问题-[致命错误] Project1.dpr(1): Unit not found: &#39;System.pas&#39; or binary equivalents (DCU,DPU)
  10. uva 580 危险的组合(排列组合)
  11. servlet 中字符集的处理
  12. CSU 1650 影魔大战
  13. mybatis学习三
  14. 如何解决 React 官方脚手架不支持 Less 的问题
  15. web测试工具列表
  16. ubuntu16.04编译安装imu_tk
  17. Leetcode88_Merge Sorted Array_Easy
  18. flex自定义preloader预加载进度条
  19. 初识node.js(通过npm下载项目依赖的包的过程)
  20. JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )(转载)

热门文章

  1. temp--内蒙农信(环境)
  2. Visual Studio学习记录
  3. php中出现乱码
  4. 11个炫酷的Linux终端命令大全
  5. Azure Active Directory document ---reading notes
  6. 00SQL表字段说明
  7. 【UOJ117】 欧拉回路(欧拉回路)
  8. 64位 windows10,MYSQL8.0.13重置密码(忘记密码或者无法登录)
  9. Spark学习之wordcount程序
  10. python jieba库的基本使用