需求
比如今天是2021年7月1号
1、最近未来的元旦就是2022年1月1号
2、最近未来的清明就是2022年4月5号
3、最近未来的五一就是2022年5月1号
4、最近未来的国庆就是2021年10月1号
代码
@Test
public void test3(){
//获取法定节假日
getYearDay(1);
getYearDay(2);
getYearDay(3);
getYearDay(4);
}
//获取年份
public void getYearDay(int dow){
Calendar date = Calendar.getInstance();
switch (dow) {
//元旦
case 1:
date.set(Calendar.MONTH, 0);
date.set(Calendar.DAY_OF_MONTH,1);
break;
//清明
case 2:
date.set(Calendar.MONTH, 3);
date.set(Calendar.DAY_OF_MONTH,5);
break;
//五一
case 3:
date.set(Calendar.MONTH, 4);
date.set(Calendar.DAY_OF_MONTH,1);
break;
//国庆
case 4:
date.set(Calendar.MONTH, 9);
date.set(Calendar.DAY_OF_MONTH,1);
break;
}
//清空时分秒
date.set(Calendar.HOUR, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
if (date.getTime().compareTo(new Date()) <= 0) {
date.add(Calendar.YEAR, 1);
}
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(date.getTime()));
}