import datetime
DayL = ['Mon','Tues','Wednes','Thurs','Fri','Satur','Sun']
date = DayL[datetime.date(year,month,day).weekday()] + 'day'
#Set day, month, year to your value
#Now, date is set as an actual day, not a number from 0 to 6.
print(date)
def dow(year,month,day):
""" day of week, Sunday = 1, Saturday = 7
http://en.wikipedia.org/wiki/Zeller%27s_congruence """
m, q = month, day
if m == 1:
m = 13
year -= 1
elif m == 2:
m = 14
year -= 1
K = year % 100
J = year // 100
f = (q + int(13*(m + 1)/5.0) + K + int(K/4.0))
fg = f + int(J/4.0) - 2 * J
fj = f + 5 - J
if year > 1582:
h = fg % 7
else:
h = fj % 7
if h == 0:
h = 7
return h
15 回答
使用date.weekday()或date.isoweekday() .
使用
weekday()
(docs):从文档:
在1700/1/1之后没有导入日期的解决方案
如果日期是日期时间对象,则这是一种解决方案 .
使用Canlendar模块
如果您想要英文日期:
阅读更多:https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
如果您想要英文日期:
我为codechef question解决了这个问题 .
这是我的python3实现 .
为了让星期日从1到星期六为7,这是你问题最简单的解决方案:
他们都是:
输出:
datetime库有时会出现strptime()的错误,所以我切换到dateutil库 . 以下是如何使用它的示例:
您从中获得的输出是
'Mon'
. 如果您希望输出为'Monday',请使用以下命令:这对我来说非常快 . 我在使用datetime库时遇到了问题,因为我想存储工作日名称而不是工作日编号,而使用datetime库的格式导致了问题 . 如果你没有遇到这个问题,太好了!如果你是,你可以肯定地去做,因为它有一个更简单的语法 . 希望这可以帮助 .
假设您获得了日,月和年,您可以:
如果您有理由避免使用datetime模块,那么此功能将起作用 .
注意:假设从Julian到公历的变化发生在1582年 . 如果您感兴趣的日历不适用,那么如果年份> 1582则更改行:相应地 .
如果您不仅仅依赖于
datetime
模块,calendar
可能是更好的选择 . 例如,这将为您提供日期代码:这会给你一天的感觉:
或者以python的风格,作为一个班轮:
这里是如何将日期列表转换为日期