gpt4 book ai didi

python 计算商业周数

转载 作者:太空狗 更新时间:2023-10-30 00:46:05 25 4
gpt4 key购买 nike

给定一个开始日期,我如何确定使用 Python 已经有多少个“工作周”?我不能只除以 7,因为那不会给我正确的答案。

例如,从 2012 年 8 月 1 日到当前日期(2012 年 8 月 13 日)的开始日期将输出 3 周。

我基本上是想从足球赛季开始算起,当前一周(整数)是多少。

我试过摆弄 Python 的 datetime 模块,但无济于事。

最佳答案

尝试使用 datetime.weekday , datetime.isoweekday获取当前星期几或使用更完整的 datetime.isocalendar还可以获取一年中的当前一周,并使用这些作为偏移量来计算对齐差异。

所以你可以有这样的功能:

def week_difference(start, end):
assert start <= end
start_year, start_week, start_dayofweek = start.isocalendar()
end_year, end_week, end_dayofweek = end.isocalendar()

return ((end_year - start_year) * 52) - start_week + end_week

像这样使用:

import datetime as dt
# same week
In [1]: week_difference(dt.datetime(2012, 8, 1), dt.datetime(2012, 8, 1))
Out[1]: 0

# your example (see note below)
In [2]: week_difference(dt.datetime(2012, 8, 1), dt.datetime(2012, 8, 13))
Out[2]: 2

# across years
In [3]: week_difference(dt.datetime(2011, 8, 1), dt.datetime(2012, 8, 13))
Out[3]: 54

# year boundary: second last business week of 2011, to first business week of 2012
# which is the same business week as the last business week of 2011
In [4]: week_difference(dt.datetime(2011, 12, 20), dt.datetime(2012, 1, 1))
Out[4]: 1

In [5]: week_difference(dt.datetime(2011, 12, 18), dt.datetime(2012, 1, 1))
Out[5]: 2

您可以将 1 添加到您的周输出中,具体取决于您选择的周差应该是什么语义。

关于python 计算商业周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11944826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com