Python中weekday()函数如何将星期日表示为1,星期六表示为7?

4

如何将星期日作为1,星期六作为7来计算日期?与datetime.isoweekday()等效的方法是什么?

Python中的weekday()并没有提供帮助。除了笨拙地子类化或进行奇怪的算术运算(加法,模7)之外,还有其他替代方法吗?

我觉得不为一个流行的表示方式提供内置方法很奇怪。- 发泄完毕 -


2
将其制作成一个函数? - pfnuesel
4
你的加法/取模操作顺序有误;如果你想得到1-7之间的值,应该写成dt.isoweekday() % 7 + 1 - ShadowRanger
很遗憾,Python不允许将函数添加到内置类型中。虽然子类化是一种方法,但有点丑陋 :p - nehem
1
抱歉,我错过了数组 [1,2,3,4,5,6,7,1][datetime.isoweekday(dt)][1,2,3,4,5,6,7,1][dt.isoweekday()] 上的最后一个值。当然,第一个值从未被使用。 - John La Rooy
@JohnLaRooy 如果您能将其编写为答案,我希望接受它。这样更加简洁,我们可以在某个地方将该列表添加为全局变量。 - nehem
显示剩余3条评论
1个回答

4
您可以使用像这样的查找表
[1,2,3,4,5,6,7,1][datetime.isoweekday(dt)] 

或者
[1,2,3,4,5,6,7,1][dt.isoweekday()]

表格中的第一个值当然不会被使用。

1
我在想是否使用类似于["NEVER USED", 2, 3, 4, 5, 6, 7, 1]的列表更好。 - Mike Graham
1
或者 [1, 2, 3, 4, 5, 6, 0][dt.weekday()]。https://docs.python.org/3.5/library/datetime.html#datetime.date.weekday - wasabigeek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接