使用Calendar.monthdatescalendar()和劳动节

2024-10-01 13:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用日历和monthdatescalendar()

import Calendar

mycal = calendar.Calendar(0)
laborday = mycal.monthdatescalendar(2003, 9)[0][0]

正确返回09/01/2003

^{pr2}$

返回2014年8月30日,这不是所需的结果

正确的方法是什么来正确地得到一个月的第一个***日(对于任何一个月/年),而不是因为你正确地得到了第一个星期,而是得到了上个月的最后一个***日?在


Tags: 方法importcalendarpr2monthdatescalendarmycallaborday
1条回答
网友
1楼 · 发布于 2024-10-01 13:24:02

问题是monthdatescalendar返回整周,因此如果需要,将包括前几个月来填补第一周的时间。在

要获得正确的日期,您需要检查第一个Mondaydatetime对象的月份,并根据需要选择下一个星期一。在

import calendar

def getLaborDay(year):
    month = 9
    mycal = calendar.Calendar(0)
    cal = mycal.monthdatescalendar(year, month)
    if cal[0][0].month == month:
        return cal[0][0]
    else:
        return cal[1][0]

print getLaborDay(2003)
print getLaborDay(2004)

Gives:

^{pr2}$

相关问题 更多 >