如何在python中查找一个月中没有的一周?

时间:2016-02-14 12:27:21

标签: python python-datetime

我已经看到很多方法来确定一年中的一周。就像给出指令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周

[这是与类似的可用问题不同的问题,在这里我要问的是找到本月的一周而不是一年中的一周]

2 个答案:

答案 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))

我从This StackOverFlow Answer

获得了此功能