我想了解以下内容:给定一个日期(datetime对象),一周中对应的日期是什么?
例如,星期天是第一天,星期一是第二天。。等等
然后如果输入的内容类似于今天的日期。
实例
>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday() # what I look for
产量可能是6(因为现在是星期五)
我想了解以下内容:给定一个日期(datetime对象),一周中对应的日期是什么?
例如,星期天是第一天,星期一是第二天。。等等
然后如果输入的内容类似于今天的日期。
实例
>>> today = datetime.datetime(2017, 10, 20)
>>> today.get_weekday() # what I look for
产量可能是6(因为现在是星期五)
当前回答
如果您不完全依赖datetime模块,日历可能是更好的选择。例如,这将为您提供日期代码:
calendar.weekday(2017,12,22);
这将给你一天:
days = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
days[calendar.weekday(2017,12,22)]
或者以python的风格,作为一行:
["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"][calendar.weekday(2017,12,22)]
其他回答
当星期一为0,星期日为6时,使用date.weekday()
or
date.isoweekday(),当周一是1,周日是7
一个简单、直接但尚未提及的选项:
import datetime
...
givenDateObj = datetime.date(2017, 10, 20)
weekday = givenDateObj.isocalendar()[2] # 5
weeknumber = givenDateObj.isocalendar()[1] # 42
使用weekday():
>>> import datetime
>>> datetime.datetime.today()
datetime.datetime(2012, 3, 23, 23, 24, 55, 173504)
>>> datetime.datetime.today().weekday()
4
根据文档:
以整数形式返回星期几,其中星期一为0,星期日为6。
如果您是中国用户,您可以使用此软件包:https://github.com/LKI/chinese-calendar
import datetime
# 判断 2018年4月30号 是不是节假日
from chinese_calendar import is_holiday, is_workday
april_last = datetime.date(2018, 4, 30)
assert is_workday(april_last) is False
assert is_holiday(april_last) is True
# 或者在判断的同时,获取节日名
import chinese_calendar as calendar # 也可以这样 import
on_holiday, holiday_name = calendar.get_holiday_detail(april_last)
assert on_holiday is True
assert holiday_name == calendar.Holiday.labour_day.value
# 还能判断法定节假日是不是调休
import chinese_calendar
assert chinese_calendar.is_in_lieu(datetime.date(2006, 2, 1)) is False
assert chinese_calendar.is_in_lieu(datetime.date(2006, 2, 2)) is True
在MATLAB中,高斯方法
day_name={'Sun','Mon','Tue','Wed','Thu','Fri','Sat'}
month_offset=[0 3 3 6 1 4 6 2 5 0 3 5]; % common year
% input date
y1=2022
m1=11
d1=22
% is y1 leap
if mod(y1,4)==0 && mod(y1,100)==0 && mod(y1,400)==0
month_offset=[0 3 4 0 2 5 0 3 6 1 4 6]; % offset for leap year
end
% Gregorian calendar
weekday_gregor=rem( d1+month_offset(m1) + 5*rem(y1-1,4) + 4*rem(y1-1,100) + 6*rem(y1-1,400),7)
day_name{weekday_gregor+1}
0:星期日1:星期一。。6:星期六