查找给定工作日的星期一至星期日的日期以及当前日期

时间:2018-07-14 06:27:41

标签: python python-3.x

我目前正在为我的一台服务器开发一个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)

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}