程序怎么获取节假日

时间:2025-01-28 08:58:35 单机游戏

获取节假日的方法有多种,以下是几种常见编程语言的实现方式:

Java

在Java中,可以通过调用外部API来获取节假日信息。例如,使用百度的API:

```java

import java.util.*;

import java.net.HttpURLConnection;

import java.net.URL;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class HolidayFetcher {

public static List getHolidayList() {

int year = DateUtil.year(new Date());

String holidayStr = JedisClusterUtils.getString("pf-jjr" + year);

if (StringUtils.isBlank(holidayStr)) {

Map paramMap = new HashMap<>();

paramMap.put("query", String.valueOf(year));

paramMap.put("resource_id", "6018");

paramMap.put("format", "json");

String result = HttpUtil.get("https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php", paramMap);

holidayStr = result;

}

// 解析result字符串获取节假日列表

// 这里需要自行解析JSON字符串

return new ArrayList<>();

}

}

```

Python

在Python中,可以使用`holidays`库来获取节假日信息:

```python

import holidays

获取中国2024年的节假日

cn_holidays = holidays.CN(years=2024)

检查是否是节假日

print('2024-01-01' in cn_holidays) True

print('2024-02-14' in cn_holidays) True

获取某个日期的具体节日名称

date = '2024-01-01'

if date in cn_holidays:

print(f"{date}是{cn_holidays.get(date)}")

计算下一个工作日

next_workday = cn_holidays.next_workday(date)

print(f"{date}的下一个工作日是:{next_workday}")

多国节日支持

us_holidays = holidays.US(years=2024)

jp_holidays = holidays.JP(years=2024)

对比不同国家的节日

print("美国独立日:", us_holidays.get('2024-07-04'))

print("日本元旦:", jp_holidays.get('2024-01-01'))

```

PHP

在PHP中,可以通过编写函数来获取节假日信息:

```php

function is_holiday($date, $holiday, $exchange_day) {

$calendar = [];

$year = date('Y', strtotime($date));

foreach ($holiday as $k => $v) {

$day = date('Y-m-d', strtotime($v));

$calendar[$day] = [

'day' => $day,

'day_type' => 1,

'is_work_day' => 0

];

}

if (!$year) {

$year = date('Y', strtotime($date));

}

foreach ($exchange_day as $k => $v) {

$day = date('Y-m-d', strtotime($v));

$calendar[$day] = [

'day' => $day,

'day_type' => 2,

'is_work_day' => 1

];

}

return $calendar[$date]['day_type'] == 1;

}

// 示例数据

$holiday = [

'2024-01-01' => '元旦',

'2024-02-14' => '情人节',

// 其他节假日

];

$exchange_day = [

'2024-02-14' => '调休工作日',

// 其他调休工作日

];

// 检查是否是节假日

$date = '2024-01-01';

if (is_holiday($date, $holiday, $exchange_day)) {

echo $date . "是节假日\n";

} else {

echo $date . "不是节假日\n";

}

```

建议

1.