学习记录--判断日期是否为节假日(调用接口)

Calendar calendar = new GregorianCalendar();
calendar.setTime(new Date());
calendar.add(calendar.DATE,n);//把日期往后增加n天.整数往后推,负数往前移动


String dayString = DateUtils.format(calendar.getTime(),"yyyyMMdd");

String url = "http://vip.bitefu.net/jiari/?d=" + dayString; 

RestTemplate restTemplate = new RestTemplate();
ResponseEntity<HolidayDTO> res = restTemplate.getForEntity(url, HolidayDTO.class);

Integer dateStatus = res.getBody().getData();//获取是否为节假日 0:工作日  1:周末 2:节假日

HolidayDTO

@Data
public class HolidayDTO {
    private Integer status;
    private Integer data;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个 Java 工具类,可以用来判断日期是否节假日、双休日、调休日: ```java import java.time.DayOfWeek; import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class DateUtils { private static final String[] HOLIDAYS = { "2022-01-01", // 元旦 "2022-02-01", // 春节 "2022-02-02", "2022-02-03", "2022-04-05", // 清明节 "2022-05-01", // 劳动节 "2022-06-01", // 儿童节 "2022-09-21", // 中秋节 "2022-10-01", // 国庆节 "2022-10-02", "2022-10-03", "2022-10-04", "2022-10-05", "2022-10-06", "2022-10-07" }; private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); public static boolean isHoliday(String dateStr) { LocalDate date = LocalDate.parse(dateStr, DATE_FORMATTER); for (String holiday : HOLIDAYS) { if (dateStr.equals(holiday)) { return true; } } return false; } public static boolean isWeekend(String dateStr) { LocalDate date = LocalDate.parse(dateStr, DATE_FORMATTER); return date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY; } public static boolean isAdjustRestDay(String dateStr) { LocalDate date = LocalDate.parse(dateStr, DATE_FORMATTER); DayOfWeek dayOfWeek = date.getDayOfWeek(); if (dayOfWeek != DayOfWeek.SATURDAY && dayOfWeek != DayOfWeek.SUNDAY) { LocalDate prevDate = date.minusDays(1); LocalDate nextDate = date.plusDays(1); return isHoliday(prevDate.toString()) || isHoliday(nextDate.toString()); } return false; } } ``` 在这个工具类中,我们使用了 Java 8 中的 LocalDate 类来处理日期,并使用 DayOfWeek 类来获取星期几。在 isHoliday() 方法中,我们使用一个字符串数组来存储节假日日期列表,并通过循环来判断指定日期是否节假日。在 isWeekend() 方法中,我们使用 DayOfWeek 类来判断指定日期是否为周六或周日。在 isAdjustRestDay() 方法中,我们判断指定日期是否为周一到周五的工作日,如果是,则判断前一天和后一天是否节假日来确定是否为调休日。在这个工具类中,我们还使用了 DateTimeFormatter 来格式化日期字符串。使用这个工具类非常简单,只需要调用相应的方法即可。例如: ```java public static void main(String[] args) { String dateStr = "2022-01-01"; boolean isHoliday = DateUtils.isHoliday(dateStr); boolean isWeekend = DateUtils.isWeekend(dateStr); boolean isAdjustRestDay = DateUtils.isAdjustRestDay(dateStr); System.out.println(dateStr + " 是否节假日:" + isHoliday); System.out.println(dateStr + " 是否为双休日:" + isWeekend); System.out.println(dateStr + " 是否为调休日:" + isAdjustRestDay); } ``` 输出结果如下: ``` 2022-01-01 是否节假日:true 2022-01-01 是否为双休日:true 2022-01-01 是否为调休日:false ``` 这个工具类可以轻松地集成到你的项目中,方便地进行日期判断

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值