gpt4 book ai didi

python - 给定工作日和当前日期,查找星期一到星期日的日期

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:04 24 4
gpt4 key购买 nike

我目前正在为我的一台服务器开发一个 discord 机器人,为了让它正常工作,我需要它在给定当前日期和工作日的情况下显示周一到周日的日期。如果可能,我想避免使用大量 if 语句。

我尝试过的方法:我尝试过使用 if 语句来完成这项任务,但发现它工作量太大,而且代码困惑。

部分当前代码:

日期

time = ctx.message.timestamp
day = time.day
month = time.month
year = time.year
date = [year, month, day]

工作日:

with open(dir_data + "Week Day.txt",'r+') as f:
system_day = f.readline()

注意:星期几是数字形式。 (例如,星期一 = 1)

最佳答案

您可以使用模块 weekday() 来了解星期几:

import datetime
datetime.datetime.today().weekday()

date.weekday() 以整数形式返回星期几,其中星期一为 0,星期日为 6。例如,date(2002, 12, 4).weekday () 为 2,表示今天是星期三。

在您的情况下,您想要生成从星期一到星期日的日期,因此以下函数返回一个字典,其中键是工作日,它的值是与那一天对应的日期可能很有用:

import datetime

def generate_week_days(date):
weekday = date.weekday()
offset = [i - weekday for i in range(7)]
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
dates = [(date + datetime.timedelta(days)).date() for days in offset]

return {days[date.weekday()]: date for date in dates}

例子:

d = datetime.datetime.now()
print(generate_week_days(d))

这将打印:

{'Monday': datetime.date(2018, 7, 9),
'Tuesday': datetime.date(2018, 7, 10),
'Wednesday': datetime.date(2018, 7, 11),
'Thursday': datetime.date(2018, 7, 12),
'Friday': datetime.date(2018, 7, 13),
'Saturday': datetime.date(2018, 7, 14),
'Sunday': datetime.date(2018, 7, 15)}

关于python - 给定工作日和当前日期,查找星期一到星期日的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51335887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com