Python: 检查今天是否是该月的第一个工作日

Python: Check if today is first weekday of the month

我想知道如何在 Python 中检查当前日期是否是该月的第一个工作日,但在网上找不到任何解决方案。所以我想我 post 我的,以防万一有人也需要解决这个问题。

import datetime

weekday = datetime.datetime.today().weekday()
day = datetime.datetime.today().day
date_str = datetime.datetime.today().strftime("%A, %d-%m-%Y")

if (weekday == 0 and day in (1, 2, 3)) or (weekday in (1, 2, 3, 4) and day == 1):
    print("Today {0} is the first weekday of the month.".format(date_str))
else:
    print("Today {0} is not the first weekday of the month.".format(date_str))

datetime.datetime.today().weekday() returns 整数形式的工作日,其中 0 = 星期一,1 = 星期二等

datetime.datetime.today().day returns 一个月中的第几天整数

每月的第一个星期一可以是该月的第一个、第二个或第三个。必须检查所有其他工作日是否在该月的 1 日。如果他们不在一个月的第一天,那么他们就不是这个月的第一个工作日。

当你先说 weekday 你是在假设 Monday 对吗?

这背后的逻辑应该是:

  • 今天是星期一
  • 今天是 1、2、3、4、5、6 或 7
  • 最新是因为,如果今天是Monday但是是8那就意味着第一个Monday是第一个

获取它的函数

def is_first_weekday_of_month():
    weekday = datetime.today().weekday()
    day = datetime.today().day

    return weekday == 0 and day in (1, 2, 3, 4, 5, 6, 7)