【问题标题】:How to change the default first week day number to 0 in Calendar module Python如何在日历模块Python中将默认的第一周天数更改为0
【发布时间】:2014-01-22 07:55:33
【问题描述】:

我在我的代码中实现了一个逻辑,我需要计算日期/日期,将星期日视为一周的开始日期。 当我使用此代码时

import calendar
day_number = calendar.weekday(2014, 01, 19)

它返回的 day_number 为 6,但我需要它应该返回为 0,因为 2014 年 1 月 19 日是星期日。

我也试过用这个:

calendar.setfirstweekday(calendar.SUNDAY)

但是星期几还是6。有没有什么设置可以把星期几设置为0,星期数应该如下所示

'sun': 0, 
'mon': 1,
'tue': 2,
'wed': 3,
'thu': 4,
'fri': 5,
'sat': 6,

【问题讨论】:

    标签: python django date calendar


    【解决方案1】:

    setfirstweekday 只影响像prmonth 这样的显示功能:

    >>> calendar.prmonth(2014, 1)
        January 2014
    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
    >>> calendar.setfirstweekday(calendar.SUNDAY)
    >>> calendar.prmonth(2014, 1)
        January 2014
    Su Mo Tu We Th Fr Sa
              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
    

    如何使用模数?

    >>> (calendar.weekday(2014, 1, 19) + 1) % 7
    0
    

    【讨论】:

    • 是的,模数应该可以工作。但是如果我再次使用这个 calendar.day_name[0],它会返回 'Monday' 而不是 'Sunday'
    • @sandeep,为什么不定义自己的day_nameday_name = calendar.day_name[6:] + calendar.day_name[:6]
    • 是的,好的。我可以根据自己的意愿定义一个包含日期名称的字典,然后在代码中引用它。
    • 我也认为日历应该这样反应,如果我们要定义自己的逻辑,为什么要使用库,对吧?
    猜你喜欢
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多