我已经看到很多方法来确定一年中的一周。就像给出指令datetime.date(2016, 2, 14).isocalendar()[1]
一样,我得到6
作为输出。这意味着2016年第14届2016年第6周属于第6周。但我无法找到任何可以找到本月的一周的方式。
表示如果我将输入设为some_function(2016,2,16)
我应该输出为3
,表示我2016年2月16日是2016年2月的第3周
[这是与类似的可用问题不同的问题,在这里我要问的是找到本月的一周而不是一年中的一周]
答案 0 :(得分:0)
import datetime
def week_number_of_month(date_value):
week_number = (date_value.isocalendar()[1] - date_value.replace(day=1).isocalendar()[1] + 1)
if week_number == -46:
week_number = 6
return week_number
date_given = datetime.datetime(year=2018, month=12, day=31).date()
week_number_of_month(date_given)
答案 1 :(得分:-1)
这个功能完成了我想要的工作
from math import ceil
def week_of_month(dt):
first_day = dt.replace(day=1)
dom = dt.day
adjusted_dom = dom + first_day.weekday()
return int(ceil(adjusted_dom/7.0))
获得了此功能