ical 节假日 节气

部署运行你感兴趣的模型镜像


2009年中国法定节日

http://www.google.com/calendar/ical/9cbupis1j0nefujbldij9972n4%40group.calendar.google.com/public/basic.ics
访问网址超出本站范围,不能确定是否安全
继续访问 取消访问
http://www.google.com/calendar/ical/9cbupis1j0nefujbldij9972n4%40group.calendar.google.com/public/basic.ics

中国节气 Traditional Chinese

http://www.google.com/calendar/ical/orp22j75kcj10gqhol530ftucs%40group.calendar.google.com/public/basic.ics
访问网址超出本站范围,不能确定是否安全
继续访问 取消访问
http://www.google.com/calendar/ical/orp22j75kcj10gqhol530ftucs%40group.calendar.google.com/public/basic.ics

农历
http://www.google.com/calendar/ical/lunar__zh_cn%40holiday.calendar.google.com/public/basic.ics

看来ical 和google calendar 是通用的,不知道能同步否

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在Java开发中,获取节假日信息是一个常见的需求,尤其是在处理合同日期、工作日调整等业务逻辑时。以下是一些常用的Java开源库和解决方案,可以帮助开发者快速获取节假日信息,并提供代码示例供参考。 ### 1. 使用 `lunar` 工具库获取节假日信息 `lunar` 是一个常用的Java工具库,支持农历、节假日节气等功能。它提供了较为全面的节假日数据,并且可以通过简单的API调用获取指定日期是否为节假日。 Maven依赖: ```xml <dependency> <groupId>com.github.abel533</groupId> <artifactId>lunar</artifactId> <version>1.0.0</version> </dependency> ``` 示例代码: ```java import com.github.abel533.lunar.Lunar; import com.github.abel533.lunar.LunarDate; public class HolidayChecker { public static void main(String[] args) { Lunar lunar = new Lunar(); LunarDate lunarDate = lunar.getLunarDate(2023, 10, 1); // 获取2023年10月1日的农历信息 if (lunarDate.isHoliday()) { System.out.println("该日期是节假日"); } else { System.out.println("该日期不是节假日"); } } } ``` ### 2. 使用 `java.time` + 自定义节假日数据 对于一些简单的应用场景,可以结合 `java.time` API 和自定义的节假日数据来实现节假日判断。这种方式适用于节假日数据变化不频繁的项目。 示例代码: ```java import java.time.LocalDate; import java.util.HashSet; import java.util.Set; public class CustomHolidayChecker { private static final Set<LocalDate> HOLIDAYS = new HashSet<>(); static { // 添加节假日数据 HOLIDAYS.add(LocalDate.of(2023, 1, 1)); // 元旦 HOLIDAYS.add(LocalDate.of(2023, 10, 1)); // 国庆节 } public static boolean isHoliday(LocalDate date) { return HOLIDAYS.contains(date); } public static void main(String[] args) { LocalDate date = LocalDate.of(2023, 10, 1); if (isHoliday(date)) { System.out.println("该日期是节假日"); } else { System.out.println("该日期不是节假日"); } } } ``` ### 3. 使用 `ical4j` 解析 iCal 格式的节假日数据 `ical4j` 是一个用于解析 iCal 格式数据的 Java 库,可以用于从互联网上获取标准的节假日日历数据(如 Google Calendar 提供的节假日日历)。 Maven依赖: ```xml <dependency> <groupId>org.mnode.ical4j</groupId> <artifactId>ical4j</artifactId> <version>3.2.0</version> </dependency> ``` 示例代码: ```java import net.fortuna.ical4j.data.CalendarBuilder; import net.fortuna.ical4j.model.Calendar; import net.fortuna.ical4j.model.Component; import net.fortuna.ical4j.model.Date; import net.fortuna.ical4j.model.component.VEvent; import java.io.InputStream; import java.net.URL; import java.time.LocalDate; import java.time.ZoneId; import java.util.TimeZone; public class ICalHolidayChecker { public static void main(String[] args) throws Exception { URL url = new URL("https://www.google.com/calendar/ical/en.usa%23holiday%40group.v.calendar.google.com/public/basic.ics"); InputStream is = url.openStream(); CalendarBuilder builder = new CalendarBuilder(); Calendar calendar = builder.build(is); LocalDate targetDate = LocalDate.of(2023, 12, 25); // 圣诞节 for (Object obj : calendar.getComponents(Component.VEVENT)) { VEvent event = (VEvent) obj; Date startDate = event.getStartDate().getDate(); LocalDate eventDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); if (eventDate.equals(targetDate)) { System.out.println("该日期是节假日:" + event.getSummary()); return; } } System.out.println("该日期不是节假日"); } } ``` ### 4. 使用 `holidays` 库(基于数据库存储节假日信息) 如果你的应用需要将节假日信息存储在数据库中,可以使用自定义的节假日数据表,并通过JPA或MyBatis等ORM框架进行查询。以下是一个简单的数据库表结构示例: ```sql CREATE TABLE holiday ( id BIGINT PRIMARY KEY AUTO_INCREMENT, holiday_date DATE NOT NULL, description VARCHAR(255) ); ``` 对应的Java实体类: ```java import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import java.time.LocalDate; @Entity public class Holiday { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private LocalDate holidayDate; private String description; // Getters and Setters } ``` 查询节假日的Service示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.util.Optional; @Service public class HolidayService { @Autowired private HolidayRepository holidayRepository; public boolean isHoliday(LocalDate date) { Optional<Holiday> holiday = holidayRepository.findByHolidayDate(date); return holiday.isPresent(); } } ``` ### 总结 以上介绍了几种常用的Java开源库和解决方案,用于获取节假日信息。根据不同的业务需求,可以选择合适的库或自定义实现。例如: - 如果需要快速集成节假日功能,推荐使用 `lunar` 库。 - 如果节假日数据较少且变化不大,可以使用 `java.time` + 自定义数据的方式。 - 如果需要从网络获取标准的节假日数据,可以使用 `ical4j`。 - 如果节假日数据需要持久化存储,可以结合数据库和ORM框架实现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值