【问题标题】:How to determine the first day of a month in Python [closed]如何在Python中确定一个月的第一天[关闭]
【发布时间】:2013-08-16 10:06:33
【问题描述】:

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

【问题讨论】:

  • @downvoters:愿意(向 OP)解释这个问题有什么不好?
  • 我猜是因为你讨厌一开始就为这项任务设计的一个模块(我没有投反对票)
  • 我投了赞成票,因为在我看来,奥列格对幕后发生的事情有些好奇。但是,也许我在预测......

标签: python date python-2.7


【解决方案1】:

你是指工作日(星期一,...星期日)吗?

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

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

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

上面的链接中还有isoweekdayisocalendar 和其他可能有用的函数/方法。

【讨论】:

    【解决方案2】:

    H.D 的回答很好,如果您需要当天的名称,following 应该可以工作。

    >>> from datetime import datetime
    >>> datetime.now().strftime("%A")
    'Wednesday'
    >>> 
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-12
        • 1970-01-01
        • 2020-01-12
        • 1970-01-01
        • 2010-12-03
        相关资源
        最近更新 更多