如何找出 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)
我见过很多确定一年中星期几的方法。就像通过给出指令 datetime.date(2016, 2, 14).isocalendar()[1]
我得到 6
作为输出。这意味着 2016 年 2 月 14 日属于一年中的第 6 周。但是我找不到任何方法可以找到每月的星期几。
意味着如果我输入 some_function(2016,2,16)
我应该得到 3
的输出,表示 2016 年 2 月 16 日是 2016 年 2 月
[这个问题与类似的可用问题不同,我在这里问的是查找月份的周数而不是年的周数]
这个函数完成了我想要的工作
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)