我想知道如何在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)