根据年份获取当前年的节假日信息(懒汉专用)

第三方api地址(免费):https://timor.tech/api/holiday/year/2024
结果:
这里排除了补班数据
在这里插入图片描述
懒汉专用

public class Main {
    public static void main(String[] args) {
         String holidayStr=HolidayHttp.getHolidayByYear("2024");
         ObjectMapper mapper=new ObjectMapper();
        try {
            HolidayEntity holiday=mapper.readValue(holidayStr,HolidayEntity.class);
            for(String key:holiday.getHoliday().keySet()){
                if(holiday.getHoliday().get(key).getHoliday()){
                    System.out.println(key+":"+holiday.getHoliday().get(key).toString());
                }
            }
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }
    }

DayEntity

@JsonIgnoreProperties(ignoreUnknown = true)
public class DayEntity {

    private Boolean holiday;
    private String name;
    private Integer wage;
    private String date;
    private Integer rest;

    public Boolean getHoliday() {
        return holiday;
    }

    public void setHoliday(Boolean holiday) {
        this.holiday = holiday;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getWage() {
        return wage;
    }

    public void setWage(Integer wage) {
        this.wage = wage;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public Integer getRest() {
        return rest;
    }

    public void setRest(Integer rest) {
        this.rest = rest;
    }

    @Override
    public String toString() {
        return "DayEntity{" +
                "holiday=" + holiday +
                ", name='" + name + '\'' +
                ", wage=" + wage +
                ", date='" + date + '\'' +
                ", rest=" + rest +
                '}';
    }

HolidayEntity

public class HolidayEntity {
   private String code;
   private Map<String,DayEntity> holiday;

   public String getCode() {
      return code;
   }

   public void setCode(String code) {
      this.code = code;
   }

   public Map<String, DayEntity> getHoliday() {
      return holiday;
   }

   public void setHoliday(Map<String, DayEntity> holiday) {
      this.holiday = holiday;
   }
}

HolidayHttp

public class HolidayHttp {
    private static  final  String HOLIDAY_URL="https://timor.tech/api/holiday/year/";
     /**
      *@description 根据年份获取节假日数据
      *@params year 年份
      *@date 2024/4/7 9:28
      *@author WANDER
      */
    public static String getHolidayByYear(String year){
        return HttpUtils.getApiResponse(HOLIDAY_URL+year);
    }
}

HttpUtils

public class HttpUtils {
    /**
     *   初始化HttpClient-  设置连接超时时间10s
      */
    private static final HttpClient HTTP_CLIENT = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10))
            .build();
    /**
     * get请求方法
     * @param url
     * @return
     */
    public static String getApiResponse(String url) {
        try {
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(url))
                    .header("Accept", "application/json")
                    .build();
            HttpResponse<String> response = HTTP_CLIENT.send(request, HttpResponse.BodyHandlers.ofString());
            // 检查响应状态码
            if (response.statusCode() == 200) {
                return response.body();
            } else {
                System.out.println("Error: " + response.statusCode());
                return null;
            }
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
            return null;
        }
    }
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Java中获取法定节假日可以通过使用第三方库来实现。一个常用的库是"Jollyday",它提供了一些方便的方法来获取法定节假日信息。 首先,你需要在你的项目中引入Jollyday库。你可以在Maven或Gradle中添加以下依赖项: Maven: ```xml <dependency> <groupId>de.jollyday</groupId> <artifactId>jollyday</artifactId> <version>0.5.1</version> </dependency> ``` Gradle: ```groovy implementation 'de.jollyday:jollyday:0.5.1' ``` 接下来,你可以使用以下代码来获取法定节假日信息: ```java import de.jollyday.Holiday; import de.jollyday.HolidayManager; import de.jollyday.config.ConfigurationProviderManager; public class Main { public static void main(String[] args) { // 创建HolidayManager对象 HolidayManager holidayManager = HolidayManager.getInstance(ConfigurationProviderManager.createConfigurationProvider()); // 获取指定年份的所有法定节假日 int year = 2022; Set<Holiday> holidays = holidayManager.getHolidays(year, "CN"); // 遍历输出每个法定节假日信息 for (Holiday holiday : holidays) { System.out.println(holiday.getDate() + " - " + holiday.getDescription()); } } } ``` 上述代码中,我们首先创建了一个HolidayManager对象,然后使用getHolidays方法获取指定年份和国家代码("CN"代表中国)的所有法定节假日。最后,我们遍历输出每个法定节假日的日期和描述信息。 请注意,Jollyday库提供了许多其他功能,例如获取特定日期是否为法定节假日获取指定日期范围内的法定节假日等。你可以根据自己的需求进行调整和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无言.默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值