判断当天是否为周末

        Calendar c=Calendar.getInstance();
        int weekDay=c.get(Calendar.DAY_OF_WEEK);
        if(weekDay==1 || weekDay==7 ){
            System.out.println("周日是1,周六是7");
        }
        else{
            System.out.println("不是周六周日");
        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是Java代码实现: 1. 首先需要创建一个节假日表的实体类,例如: ``` public class Holiday { private Long id; private Date date; // 节假日日期 private String name; // 节假日名称,如“元旦节”、“春节”等 private Boolean isHoliday; // 是否为节假日,true表示是节假日,false表示是工作日 // 省略getter和setter方法 } ``` 2. 接着,需要编写一个方法来创建一整年的节假日表。这里以中国的法定节假日为例,代码如下: ``` public static List<Holiday> createHolidayTable(int year) { List<Holiday> holidayList = new ArrayList<>(); // 元旦节 holidayList.add(new Holiday(null, getDate(year, 1, 1), "元旦节", true)); // 春节 holidayList.add(new Holiday(null, getDate(year, 2, 4), "除夕", true)); // 除夕 holidayList.add(new Holiday(null, getDate(year, 2, 5), "春节", true)); // 春节第一天 holidayList.add(new Holiday(null, getDate(year, 2, 6), "春节", true)); // 春节第二天 holidayList.add(new Holiday(null, getDate(year, 2, 7), "春节", true)); // 春节第三天 holidayList.add(new Holiday(null, getDate(year, 2, 8), "春节", true)); // 春节第四天 holidayList.add(new Holiday(null, getDate(year, 2, 9), "春节", true)); // 春节第五天 holidayList.add(new Holiday(null, getDate(year, 2, 10), "春节", true)); // 春节第六天 // 清明节 holidayList.add(new Holiday(null, getDate(year, 4, 4), "清明节", true)); // 劳动节 holidayList.add(new Holiday(null, getDate(year, 5, 1), "劳动节", true)); // 端午节 holidayList.add(new Holiday(null, getDate(year, 6, 14), "端午节", true)); // 中秋节 holidayList.add(new Holiday(null, getDate(year, 9, 21), "中秋节", true)); // 国庆节 holidayList.add(new Holiday(null, getDate(year, 10, 1), "国庆节", true)); holidayList.add(new Holiday(null, getDate(year, 10, 2), "国庆节", true)); holidayList.add(new Holiday(null, getDate(year, 10, 3), "国庆节", true)); holidayList.add(new Holiday(null, getDate(year, 10, 4), "国庆节", true)); holidayList.add(new Holiday(null, getDate(year, 10, 5), "国庆节", true)); holidayList.add(new Holiday(null, getDate(year, 10, 6), "国庆节", true)); holidayList.add(new Holiday(null, getDate(year, 10, 7), "国庆节", true)); // 补班 holidayList.add(new Holiday(null, getDate(year, 2, 11), "春节调休", false)); holidayList.add(new Holiday(null, getDate(year, 2, 15), "春节调休", false)); holidayList.add(new Holiday(null, getDate(year, 4, 25), "清明节调休", false)); holidayList.add(new Holiday(null, getDate(year, 5, 8), "劳动节调休", false)); holidayList.add(new Holiday(null, getDate(year, 9, 27), "中秋节调休", false)); holidayList.add(new Holiday(null, getDate(year, 10, 10), "国庆节调休", false)); return holidayList; } private static Date getDate(int year, int month, int day) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(year, month - 1, day); // 月份从0开始计算,需要减1 return calendar.getTime(); } ``` 这个方法接收一个年份作为参数,返回一个List<Holiday>类型的节假日表。这里使用了一个getDate方法来获取指定日期的Date类型,需要注意的是,Calendar中的月份是从0开始计算的,需要在传入月份时减去1。 3. 最后,需要根据节假日表判断当天日期是工作日、双休日还是节假日,代码如下: ``` @GetMapping("/checkDate") public String checkDate(@RequestParam("date") Date date) { List<Holiday> holidayList = createHolidayTable(2021); // 假设查询2021年的节假日表 Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); for (Holiday holiday : holidayList) { if (isSameDay(date, holiday.getDate())) { if (holiday.getIsHoliday()) { return holiday.getName(); } else { return "工作日"; } } } if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) { return "周末"; } else { return "工作日"; } } private static boolean isSameDay(Date date1, Date date2) { Calendar calendar1 = Calendar.getInstance(); calendar1.setTime(date1); Calendar calendar2 = Calendar.getInstance(); calendar2.setTime(date2); return calendar1.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR) && calendar1.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH) && calendar1.get(Calendar.DAY_OF_MONTH) == calendar2.get(Calendar.DAY_OF_MONTH); } ``` 这个方法接收一个日期作为参数,先调用createHolidayTable方法获取当年的节假日表,然后通过Calendar获取当天是星期几,再遍历节假日表,判断当天是否为节假日或工作日。如果是节假日,则返回节假日名称;如果是工作日,则返回“工作日”;如果是周末,则返回“周末”。其中,isSameDay方法用于判断两个日期是否为同一天。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值