我目前正在为我的一台服务器开发一个discord bot,为了使它能正常工作,我需要它提供给定当前日期和工作日的星期一到星期日的日期。如果可能的话,我想避免使用很多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)
答案 0 :(得分:1)
您可以使用模块9
8
7
6
5
4
3
2
1
0
来了解星期几:
**Original dataset**
FirstName_Store1 FirstName_Store2 FirstName_Store3
Aat Cat Dat
Cat Bat Zat
Cot
Eat
**Result intended**
FirstName_Store1 FirstName_Store2 FirstName_Store3
Aat
Bat
Cat Cat
Cot
Dat
Eat
Zat
weekday()
以整数形式返回星期几,其中星期一为0,星期日为6。例如,import datetime
datetime.datetime.today().weekday()
为2,表示星期三。
在您的情况下,您希望生成从星期一到星期日的日期,因此以下函数返回一个字典,该字典的键为工作日,其值对应于该天的日期可能有用:
date.weekday()
示例:
date(2002, 12, 4).weekday()
这将打印:
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}