python输入日期,输出该日期对应的节假日(如果不是节假日就输出工作日)
时间: 2024-09-11 18:06:37 浏览: 90
在Python中,你可以通过第三方库如`holidays`来获取特定国家的法定节假日信息,然后结合用户的输入日期进行查询。首先需要安装这个库,可以使用pip来安装:
```bash
pip install holidays
```
然后你可以编写一个函数,示例如下:
```python
import datetime
from holidays import China
def check_holiday(date_string):
date = datetime.datetime.strptime(date_string, '%Y-%m-%d') # 解析用户输入的日期字符串
try:
holiday = China[date]
print(f'{date}是中国的法定节假日 - {holiday}')
except KeyError:
print(f'{date}是工作日')
# 调用函数并传入用户输入的日期
input_date = input("请输入日期(格式:YYYY-MM-DD):")
check_holiday(input_date)
```
在这个例子中,如果输入的日期是中国的法定假日,会显示相应的节日名称;如果没有找到匹配的节日,则表示这一天是工作日。
相关问题
使用python输出99乘法表,使用python编写一段程序,程序要求:“输入一个日期,例如‘’20221001‘,输出该日期对应的节假日(也可能是周六或周末),如果不是节日就输出工作日’”。
要输出99乘法表,你可以使用嵌套循环来生成乘法规则。下面是一个简单的Python代码示例:
```python
def multiplication_table(n):
for i in range(1, n+1):
for j in range(1, n+1):
print(f"{i} * {j} = {i*j}", end="\t")
print() # 换行
multiplication_table(99)
```
对于第二个需求,你需要一个包含中国法定节假日日期的数据结构,然后根据用户输入的日期检查是否为节假日。以下是一个基础版本的实现,假设你有一个节日列表`holidays`,并且知道如何从字符串转换日期:
```python
import datetime
# 假设你有以下节日数据
holidays = {
'2022-01-01': "新年",
'2022-02-15': "春节",
# 更多节日...
}
def check_holiday(date_str):
date = datetime.datetime.strptime(date_str, '%Y%m%d')
if date.strftime('%Y-%m-%d') in holidays:
return holidays[date.strftime('%Y-%m-%d')]
elif date.weekday() < 5: # 如果是周一到周五
return "工作日"
else:
return f"周末{'' if date.weekday() == 5 else ',星期六'}"
date_input = input("请输入日期(格式:YYYYMMDD):")
print(check_holiday(date_input))
```
这个代码首先尝试获取节假日,如果输入的日期是假日,则返回相应的名称;如果不是节假日,它会检查日期是否是工作日(非周末),并据此给出结果。
2. 使用python编写一段程序,程序要求:“输入一个日期,例如‘’20221001‘,输出该日期对应的节假日(也可能是周六或周末),如果不是节日就输出工作日’”。
要实现这个功能,我们可以使用Python的`datetime`模块来解析日期,并判断该日期是工作日、周末还是特定的节假日。由于中国的节假日情况比较复杂,有些节日可能有调休,因此这里仅提供一个简化版本的示例,我们仅考虑春节、国庆节两个可能连休的节假日,以及周六和周日为节假日的情况。
下面是一个简化版的Python程序代码示例:
```python
from datetime import datetime, timedelta
def is_holiday(date, holidays):
for holiday in holidays:
if date == holiday:
return True
return False
def is_weekend(date):
return date.weekday() == 5 or date.weekday() == 6
def get_date_holiday(date_str):
# 解析输入的日期字符串
date = datetime.strptime(date_str, '%Y%m%d')
# 设置节假日,这里以春节和国庆节为例
# 注意:实际节假日日期每年都可能有变动,需要根据当年节假日安排进行更新
holidays = [
datetime(date.year, 1, 1), # 元旦
datetime(date.year, 1, 31), # 春节初一
datetime(date.year, 10, 1), # 国庆节初一
datetime(date.year, 10, 7), # 国庆节第七天
]
# 判断是否是节假日
if is_holiday(date, holidays):
return "节假日"
# 判断是否是周末
elif is_weekend(date):
return "周末"
# 其余情况是工作日
else:
return "工作日"
# 输入一个日期
input_date = input("请输入一个日期,例如'20221001': ")
print(get_date_holiday(input_date))
```
请注意,实际应用中,节假日的判断应该根据具体的节假日安排表来进行。此外,由于涉及具体的节假日日期,这段代码在未来的年份使用时需要更新节假日列表。
阅读全文