获取法定节日放假时间

https://blog.csdn.net/m0_57119230/article/details/126154134​​​​​​​
1.使用Response,OkHttpClient,Request要引入compile("com.squareup.okhttp3:okhttp:3.8.0")
2.时间查询地址(可直接访问返回2022年数据)http://timor.tech/api/holiday/year/"+2022
3.request必须加"User-Agent",否则403 forbidden 被拦截
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import com.alibaba.fastjson.JSONObject;

private static List<HolidayForm> getDays(int year) {
    String url = "http://timor.tech/api/holiday/year/"+year;
    OkHttpClient client = new OkHttpClient();
    Response response;
    //解密数据
    String rsa = null;
    Request request = new Request.Builder()
            .url(url)
            .get()
            .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36")
            .build();
    try {
        response = client.newCall(request).execute();
        rsa = response.body().string();
        Map map = JSONObject.parseObject(rsa, Map.class);
        Map<String, Map<String, Object>> holiday = (Map<String, Map<String, Object>>) map.get("holiday");
        Collection<Map<String,Object>> collection = holiday.values();
        List<HolidayForm> FormList = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        for(Map<String,Object> cc : collection){
            HolidayForm holidayForm = new HolidayForm();
            Date date = format.parse(cc.get("date").toString());
            holidayForm.setDate(date);
            holidayForm.setWage(cc.get("wage").toString());
            holidayForm.setName(cc.get("name").toString());
            FormList.add(holidayForm);
        }
        return FormList;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

holidayForm: 为访问 http://timor.tech/api/holiday/year/"+2022 返回的holiday的所有value的form

包含 holiday,name,wage,date,after,target

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值