如何找出 python 中月份的周数?

How to find out week no of the month in python?

我见过很多确定一年中星期几的方法。就像通过给出指令 datetime.date(2016, 2, 14).isocalendar()[1] 我得到 6 作为输出。这意味着 2016 年 2 月 14 日属于一年中的第 6 周。但是我找不到任何方法可以找到每月的星期几。

意味着如果我输入 some_function(2016,2,16) 我应该得到 3 的输出,表示 2016 年 2 月 16 日是 2016 年 2 月

的第 3 周

[这个问题与类似的可用问题不同,我在这里问的是查找月份的周数而不是年的周数]

这个函数完成了我想要的工作

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 Whosebug Answer

得到这个函数
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)