软件测试|使用holidays模块处理节假日

发布时间:2024年01月14日

前言

在Python中,有一个名为 holidays 的模块,它可以帮助你轻松地处理节假日信息。该模块提供了一种方便的方式来确定特定日期是否是一个节假日,同时还支持不同国家和地区的节假日计算。本文将详细介绍如何使用 holidays 模块,包括安装、基本用法和示例。

安装 holidays 模块

首先,我们需要安装 holidays 模块。我们可以使用 pip 命令来进行安装:

pip install holidays

基本用法

holidays 模块主要用于判断特定日期是否是一个节假日,同时还可以获取特定国家或地区的节假日列表。下面是一些基本用法示例。

  1. 判断特定日期是否是节假日
import holidays

# 创建一个节假日对象,这里选择了美国作为示例国家
us_holidays = holidays.US()

date_to_check = "2023-07-04"
if date_to_check in us_holidays:
    print(f"{date_to_check} 是美国的独立日!")
else:
    print(f"{date_to_check} 不是节假日。")

-----------
输出结果如下:
2023-07-04 是美国的独立日!
  1. 获取特定国家或地区的节假日列表
import holidays

# 获取美国2023年的节假日列表
us_holidays = holidays.US(years=2023)

print("美国2023年的节假日:")
for date, name in sorted(us_holidays.items()):
    print(f"{date}: {name}")

--------------
输出结果如下:
美国2023年的节假日:
2023-01-01: New Year's Day
2023-01-02: New Year's Day (Observed)
2023-01-16: Martin Luther King Jr. Day
2023-02-20: Washington's Birthday
2023-05-29: Memorial Day
2023-06-19: Juneteenth National Independence Day
2023-07-04: Independence Day
2023-09-04: Labor Day
2023-10-09: Columbus Day
2023-11-10: Veterans Day (Observed)
2023-11-11: Veterans Day
2023-11-23: Thanksgiving
2023-12-25: Christmas Day

获取中国的节假日列表

import holidays

# 获取中国2023年的节假日列表

cn_holidays = holidays.CN(years=2023)

print("中国2023年的节假日:")
for date, name in sorted(cn_holidays.items()):
    print(f"{date}: {name}")

----------------
中国2023年的节假日:
2023-01-01: New Year's Day
2023-01-22: Chinese New Year (Spring Festival)
2023-01-23: Chinese New Year (Spring Festival)
2023-01-24: Chinese New Year (Spring Festival)
2023-04-05: Tomb-Sweeping Day
2023-05-01: Labour Day
2023-06-22: Dragon Boat Festival
2023-09-29: Mid-Autumn Festival
2023-10-01: National Day
2023-10-02: National Day
2023-10-03: National Day

支持的国家和地区

holidays 模块支持许多国家和地区的节假日计算,我们可以在使用中指定所需的国家或地区。例如,holidays.US() 表示美国的节假日,holidays.CN() 表示中国的节假日,以此类推。我们可以在模块的文档中找到完整的国家和地区列表。如下图:

使用示例

下面是一个完整的示例,演示如何使用 holidays 模块来判断特定日期是否是节假日,并获取节假日列表:

import holidays


def main():
    # 选择国家或地区
    selected_country = holidays.CN()

    # 判断特定日期是否是节假日
    date_to_check = "2023-12-25"
    if date_to_check in selected_country:
        print(f"{date_to_check} 是节假日:{selected_country[date_to_check]}")
    else:
        print(f"{date_to_check} 不是节假日。")

    # 获取特定国家或地区的节假日列表
    year = 2023
    print(f"{year}年的节假日列表:")
    for date, name in sorted(selected_country.items()):
        print(f"{date}: {name}")


if __name__ == "__main__":
    main()

-----------------
输出结果如下:
2023-12-25 不是节假日。
2023年的节假日列表:
2023-01-01: New Year's Day
2023-01-22: Chinese New Year (Spring Festival)
2023-01-23: Chinese New Year (Spring Festival)
2023-01-24: Chinese New Year (Spring Festival)
2023-04-05: Tomb-Sweeping Day
2023-05-01: Labour Day
2023-06-22: Dragon Boat Festival
2023-09-29: Mid-Autumn Festival
2023-10-01: National Day
2023-10-02: National Day
2023-10-03: National Day

通过上述代码,我们可以轻松地使用 holidays 模块来判断特定日期是否是节假日,并获取特定国家或地区的节假日列表。

总结

总之,holidays 模块为节假日处理提供了便捷的方法,我们能够轻松地在Python中处理不同国家和地区的节假日信息。无论是判断特定日期是否是节假日,还是获取节假日列表,都可以通过这个模块实现。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

文章来源:https://blog.csdn.net/nhb687096/article/details/135569614
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。