我正在尝试根据此系统从时间戳中获取工作周数:
美国、加拿大、拉丁美洲大部分地区、日本、以色列、韩国等
其他人则使用周编号系统(在我们的系统中称为北美)
计算器),其中任何给定年份的第一周(编号为 1)是
包含 1 月 1 日的那一周。一周的第一天是星期日
星期六是最后一个。
https://www.calendar-12.com/week_number https://www.calendar-12.com/week_number
Python的strftime方法支持%U
and %W
,但这些都不符合该系统。熊猫还添加了%V
遵循 ISO 8601,但这也不是北美所使用的。
以下是我在我的一个项目中使用的代码。它基于北美周编号系统,其中第一周是包含 1 月 1 日的那一周。
from datetime import date
def week1_start_ordinal(year):
jan1 = date(year, 1, 1)
jan1_ordinal = jan1.toordinal()
jan1_weekday = jan1.weekday()
week1_start_ordinal = jan1_ordinal - ((jan1_weekday + 1) % 7)
return week1_start_ordinal
def week_from_date(date_object):
date_ordinal = date_object.toordinal()
year = date_object.year
week = ((date_ordinal - week1_start_ordinal(year)) // 7) + 1
if week >= 52:
if date_ordinal >= week1_start_ordinal(year + 1):
year += 1
week = 1
return year, week
例如:
>>> from datetime import date
>>> week_from_date(date(2015, 12, 27))
(2016, 1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)