获取英国财政年度的一周

时间:2021-02-02 10:51:09

标签: python

我想获取与英国财政年度(从 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,但只是好奇是否有更好的方法。

1 个答案:

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