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

2024-04-23 06:10:36 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个日期,有必要知道它是否对应于一个月内一周的第一天、第二天、第三天(etc)。 例如: 如果条目是2017-01-04,则返回:1月的第三个星期三。 如果条目是2017-01-25,则返回:本月第4个星期三。 如果条目是2018-10-18,则返回:3月的第四个。你知道吗

我搜索了datetime库,但找不到任何返回该值的库。你知道吗


Tags: datetimeetc条目
1条回答
网友
1楼 · 发布于 2024-04-23 06:10:36

使用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

相关问题 更多 >