我有一个应用程序,我需要测量一年中的周数,并且我希望所有周都有 7 天,无论这些天是否在不同的年份。
例如,我希望从 2012 年 12 月 30 日到 2013 年 1 月 5 日的所有日子都在同一周。
但这在python 中并不直接,因为正如datetime
文档所述:
%U Week number of the year (Sunday as the first day of the week)
as a decimal number [00,53]. All days in a new year preceding the
first Sunday are considered to be in week 0.
我不希望将“第一个星期日之前的新年中的所有日子”视为第 0 周。第 0 周的天数少于 7 天,2012 年的最后一周也是如此。
因此 Python 返回:
import datetime
datetime.date(2012, 12, 31).strftime('%Y-%U')
>>> 2012-53
import datetime
datetime.date(2013, 01, 01).strftime('%Y-%U')
>>> 2013-00
即使这两天是星期一和星期二,也应该是在同一周,当一周被认为是从星期日开始并在星期六结束时。
相反,我想要反映 MySQL 在模式 2 中所做的功能(此处yearweek
的文档)。
例如,
mysql> select yearweek('2013-01-01', 2) as week;
+--------+
| week |
+--------+
| 201253 |
+--------+
1 row in set (0.64 sec)
请注意,即使日期是 2013 年,周也被认为是 201253,保证 2012 年的最后一周为 7 天。
这已经在 Python 中实现了吗?
以下日历供参考:
December 2012
Mo Tu We Th Fr Sa Su
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
January 2013
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31