Holiday-predictor

Latest version: v1.0.0

Safety actively analyzes 723954 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 11

0.9.0alpha.1

**Overview:**

- ✨ 加入了预测春节假期的功能, 💬完善了帮助信息。

**New Features:**

- ✨ 加入了预测春节假期的功能;
- ✨ 在预测春节假期时,会输出以下内容:
> [!NOTE]
> 春节的放假方式经历过两次修改。
> 最早,除夕不放假,且假期共7天;后来,除夕放假,且假期共7天;时至今日,除夕不放假,但放假8天。
> 在本程序中,统一以除夕不放假,但放假8天为准。
> 因此,在预测以前的春节假期时,本程序给出的结果并不准确。
> 并且,由于在本项目制作春节部分时是第一个除夕不放假,连放8天的春节,没有过往的历史可以参考,
> 在预测未来的春节假期时,也不一定准确。

> [!TIP]
> 您可以使用`--do-not-output-notes`参数以不显示这条提示。

**Text Changes:**

- 💬 在帮助信息中加入了预测春节假期有关的功能。

0.8.4

**Overview:**

- 💻 一些技术性更改。

**Technology Changes:**

- 🗃️ 将几处不必要的`Optional[int]`更改为`int`,以解决 IDE 报 Warning.
> [!NOTE]
> 以下是其中一处更改前后的代码对比:
>
> (更改前,data.py)
>
> INTERNATIONAL_LABOURS_DAY_END_DELTA_DAY: ClassVar[Tuple[
> Optional[int], Optional[int], Optional[int], Optional[int],
> Optional[int], Optional[int], Optional[int]
> ]] = (2, 1, 4, 4, 4, 4, 3)
>
>
> (更改后,data.py)
>
> INTERNATIONAL_LABOURS_DAY_END_DELTA_DAY: ClassVar[Tuple[
> int, int, int, int,
> int, int, int
> ]] = (2, 1, 4, 4, 4, 4, 3)
>

0.8.3

**Overview:**

- ✏️ 修正了一处拼写错误。

**Spelling Mistakes Fix:**

- ✏️ 修正了错误地将“**ild**”拼写为了“**ilb**”的问题。

0.8.2

**Overview:**

- 🔀 合并了14 , 🐛 修复了一些bug. ✨ 添加了命令行直接传参的功能。

**New Features:**

- ✨ 添加了命令行直接传参的功能。(详见**Technology Changes**部分)

**Bug Fix:**

- 🐛 修复了13:预测中秋节假期时,若年份<1949,则无法继续。

**Technology Changes:**

- ✨ 添加了命令行直接传参的功能。
> [!NOTE]
> 您可以直接在命令行执行本程序时,程序名称末尾添加参数,就像这样:
>
> python ./main.py fc 2024 -nd
>
> 这样,也可以输出2024年的国庆假期预测结果。

0.8.1

**Overview:**

- 🔥 删除了 GitHub Actions 的 Pylint 配置文件。

0.8.0

**Overview:**
- 合并了12 ;
- ♻️ 对代码进行了重写;
- 💬 优化了部分文字描述。

**Technology Changes:**

- ♻️ 将除预测国庆假期以外的假期的预测算法全部重写,由多次的 if 更改为查表法。
> [!NOTE]
> 下面是一段修改前后的代码对比:
>
> 修改前:
> (main.py)
>
> elif holiday_name in ("--may-day", "-md"): 该部分用于处理五一假期的调休预测。
> if not '--do-not-output-notes' in given_list:
> print(Data.may_day_note)
> may_day_date: datetime.datetime = datetime.datetime(year=forecast_year, month=5, day=1)
> may_day_dateofweek: int = may_day_date.weekday()
> 下述代码对五一假期的调休进行运算。
> if may_day_dateofweek == 0:
> 调休
> hld_days = 5
> hld_startdate = may_day_date - datetime.timedelta(days=2)
> hld_enddate = may_day_date + datetime.timedelta(days=2)
> lieu_1 = may_day_date - datetime.timedelta(days=8)
> lieu_2 = may_day_date + datetime.timedelta(days=5)
> elif may_day_dateofweek == 1:
> 调休
> hld_days = 5
> hld_startdate = may_day_date - datetime.timedelta(days=3)
> hld_enddate = may_day_date + datetime.timedelta(days=1)
> lieu_1 = may_day_date - datetime.timedelta(days=9)
> lieu_2 = may_day_date + datetime.timedelta(days=4)
> elif may_day_dateofweek == 2:
> 不调休
> hld_days = 5
> hld_startdate = may_day_date
> hld_enddate = may_day_date + datetime.timedelta(days=4)
> lieu_1 = may_day_date - datetime.timedelta(days=3)
> lieu_2 = may_day_date + datetime.timedelta(days=10)
> elif may_day_dateofweek == 3:
> 调休
> hld_days = 5
> hld_startdate = may_day_date
> hld_enddate = may_day_date + datetime.timedelta(days=4)
> lieu_1 = may_day_date - datetime.timedelta(days=4)
> lieu_1 = may_day_date + datetime.timedelta(days=9)
> elif may_day_dateofweek == 4:
> 调休
> hld_days = 5
> hld_startdate = may_day_date
> hld_enddate = may_day_date + datetime.timedelta(days=4)
> lieu_1 = may_day_date - datetime.timedelta(days=5)
> lieu_1 = may_day_date + datetime.timedelta(days=8)
> elif may_day_dateofweek == 5:
> 调休
> hld_days = 5
> hld_startdate = may_day_date
> hld_enddate = may_day_date + datetime.timedelta(days=4)
> lieu_1 = may_day_date - datetime.timedelta(days=6)
> lieu_1 = may_day_date + datetime.timedelta(days=7)
> elif may_day_dateofweek == 6:
> 调休
> hld_days = 3
> hld_startdate = may_day_date - datetime.timedelta(days=1)
> hld_enddate = may_day_date + datetime.timedelta(days=3)
> lieu_1 = may_day_date - datetime.timedelta(days=7)
> lieu_1 = may_day_date + datetime.timedelta(days=6)
> else:
> raise AssertionError
>
>
> 修改后:
> (main.py)
>
> elif holiday_name in ("--may-day", "-md"): 该部分用于处理五一假期的调休预测。
> if not '--do-not-output-notes' in given_list:
> print(Data.may_day_note)
> may_day_date: datetime.datetime = datetime.datetime(year=forecast_year, month=5, day=1)
> may_day_dateofweek: int = may_day_date.weekday()
> 下述代码对五一假期的调休进行运算。
> hld_days = Data.may_day_days[may_day_dateofweek]
> hld_startdate = \
> may_day_date + datetime.timedelta(
> Data.may_day_start_delta_day[may_day_dateofweek])
> hld_enddate = \
> may_day_date + datetime.timedelta(Data.may_day_end_delta_day[may_day_dateofweek])
> lieu_1 = \
> may_day_date + datetime.timedelta(
> Data.may_day_lieu1_delta_day[may_day_dateofweek])
> lieu_2 = \
> may_day_date + datetime.timedelta(
> Data.may_day_lieu2_delta_day[may_day_dateofweek])
>
> (data.py)
>
> 以下这五行存储的是五一假期的放假安排,这些数据代表与节日当天差的天数
> may_day_days = [ 5, 5, 5, 5, 5, 5, 5]
> may_day_start_delta_day = [-2, -3, 0, 0, 0, 0, -1]
> may_day_end_delta_day = [ 2, 1, 4, 4, 4, 4, 3]
> may_day_lieu1_delta_day = [-8, -9, -3, -4, -5, -6, -7]
> may_day_lieu2_delta_day = [ 5, 4, 10, 9, 8, 7, 6]
>
>
> 修改后的代码,简洁明了许多。

**Text Changes:**

- 💬 将帮助信息中的“最后,五一放假五天”更为“时至今日,五一放假五天”。使用词更严谨、更准确。

Page 5 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.