python中是否有一个函数可以返回月份中一周的第i天?

时间:2019-11-07 03:25:40

标签: python datetime

给出日期,有必要知道它是否对应于一个月中一周中的第一天,第二天,第三天(等)。 例如: 如果条目是2017-01-04,请返回:该月的 1th 。 如果输入的是2017年1月25日,请返回:该月的 4th 。 如果条目是2018-10-18,请返回:第3 月的星期四。

我已经搜索了日期时间库,但是找不到返回该值的任何库。

1 个答案:

答案 0 :(得分:1)

使用weekday

from datetime import datetime

weekday_map = {0: 'Monday',
               1: 'Tuesday',
               2: 'Wednesday',
               3: 'Thursday',
               4: 'Friday',
               5: 'Saturday',
               6: 'Sunday'}

suffix_map = {1: 'st',
              2: 'nd',
              3: 'rd',
              4: 'th',
              5: 'th'}

def which_weekday(date):
    dt = datetime.strptime(date, '%Y-%m-%d')
    which = (dt.day - 1) // 7 + 1
    weekday = weekday_map[dt.weekday()]
    return f'{which}{suffix_map[which]} {weekday} of the month'

print(which_weekday('2017-01-04'))
print(which_weekday('2017-01-25'))
print(which_weekday('2018-10-18'))

输出:

1st Wednesday of the month
4th Wednesday of the month
3rd Thursday of the month