0

我正在编写(只是为了好玩)一个打印任何给定月份和年份的日历的函数。如何确定一个月的第一天?不使用日历模块。

4

3 回答 3

4

你的意思是工作日(星期一,...星期日)?

>>> from datetime import datetime
>>> datetime(2017, 11, 2).weekday() # Or another day
3

结果从 0 到 6,其中 0 是星期一。

http://docs.python.org/3/library/datetime.html

上面的链接中还有isoweekday,isocalendar和其他功能/方法可能会有所帮助。

于 2013-08-14T12:50:41.063 回答
2

假设您想知道计算是如何完成的,而不仅仅是要调用什么库模块,​​通常的方法是 Zeller's Congruence。
http://en.wikipedia.org/wiki/Zeller%27s_congruence

这是一个简洁的公式,基于观察到,如果您将年份视为从 3 月而不是 1 月开始,则月份中的日子几乎是有规律的间隔。如果您查看从 9 月到 12 月的月份名称后面的拉丁文,您应该会发现那确实是设计日历(当时的朱利安,以朱利叶斯凯撒命名)的年份。

您还可以搜索该术语以找到几乎每种编程语言中质量不同的大量实现。

于 2013-08-14T13:00:43.163 回答
1

HD的答案很好,如果您需要以下日期的名称,则应该可以。

>>> from datetime import datetime
>>> datetime.now().strftime("%A")
'Wednesday'
>>> 
于 2013-08-14T12:56:50.143 回答