我想创建一个函数,该函数将根据每个月返回一个日期。更具体地说,我希望它以示例格式(YYYY、MM、DD)返回每个月的 23 天:
2018 年 1 月 23 日
.
除了该日期恰逢周末的情况外,在这种情况下我希望它返回确切的前一个工作日。例如,2017 年 12 月 23 日是星期六,所以在这种情况下我希望我的函数返回给我
2017 年 12 月 22 日
。
现在我使用:
import datetime
someday = datetime.date(2018, 1, 23)
print(someday)
在 someday
变量中,我手动定义每个月所需的日期。
简而言之,2018 年接下来的七个月(一月、二月、三月、四月、五月、六月、七月),我希望我的职能能够回到我身边:
2018, 1, 23
2018, 2, 23
2018, 3, 23
2018, 4, 23
2018, 5, 23
2018, 6, 22
2018, 7, 23
接下来的几个月依此类推。
最佳答案
您可以使用 weekday()
、timedelta()
和 while
循环来实现此目的:
from datetime import date, timedelta
def last_workday(somedate):
while somedate.weekday() > 4: #weekday returns values 0-6 (Mon-Sun)
somedate -= timedelta(days=1) #timedelta returns 1 day which you subtract from your date
return somedate
y = 2018
d = 23
for m in range(1,13):
print(last_workday(date(y, m, d)))
关于python - 在python中打印特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48260327/