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



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

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()以整数形式返回工作日,其中0=周一,1=周二等。

datetime.datetime.today().day以整数形式返回一个月的哪一天

该月的第一个星期一可以是该月的1日、2日或3日。如果其他工作日是在本月1日,则必须检查这些工作日。如果他们不在本月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)