我想获取与英国财政年度(从 4 月 6 日到 4 月 5 日)对应的周数。 report_date.strftime('%V')
会给我对应于日历年(1 月 1 日至 12 月 31 日)的周数。
例如,今天是 2 月 2 日,即英国财政周 44
,但 %V
将返回 05
。
我看过 https://pypi.org/project/fiscalyear/ 库,但它似乎没有提供执行此操作的方法。我知道我可以算出自 4 月 6 日以来的天数并除以 7,但只是好奇是否有更好的方法。
答案 0 :(得分:1)
这在 Python 中完成。它计算自给定年份 (formatted_report_date
) 的 4 月 6 日以来的天数,如果答案是否定的(因为 4 月 6 日尚未过去),则减去一年。然后除以 7 并加 1(用于 1 索引)。答案将在 1-53 之间。
def get_fiscal_week(formatted_report_date):
"""
Given a date, returns the week number (from 1-53) since the last April 6th.
:param formatted_report_date: the formatted date to be converted into a
fiscal week.
"""
from datetime import datetime
fiscal_start = formatted_report_date.replace(month=4, day=6)
days_since_fiscal_start = (formatted_report_date - fiscal_start).days
if days_since_fiscal_start < 0:
fiscal_start = fiscal_start.replace(year=fiscal_start.year-1)
days_since_fiscal_start = (formatted_report_date - fiscal_start).days
return (days_since_fiscal_start / 7) + 1