这里提供三种方法以供参考:
一、公式法
公式法是以1900年1月1日(星期一)为起点进行计算,两个日期之间相隔的天数,然后按照一星期七天的周期判断指定日期为周几。这个方法适用于大多数的编程语言,并不具有python语言的特色
mon_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
y = 2019
m = 7
d = 17
sum_days = 0
# 1900年起以年为单位计算天数
for i in range(1900, y):
if (i % 4 == 0 and i % 100 != 0) or i % 400 == 0:
sum_days += 366
else:
sum_days += 365
# 2019一月起以月为单位计算天数
for i in range(1, m):
if i != 2:
sum_days += mon_days[i-1]
else:
if(y % 4 == 0 and y % 100 != 0) or y % 400 == 0:
sum_days = sum_days + mon_days[i-1]+1
else:
sum_days = sum_days + mon_days[i-1]
sum_days += d
week_day = 1+(sum_days-1)%7
print("%d年%d月%d日是星期%d" % (y, m, d, week_day))
接下来看两个python里面比较有特色且简便计算星期几的方法
方法二 datetime.weekday()
方法二利用datetiem模块创建一个datetime对象,并调用该对象的weekday()方法,直接求出当前指定日期为星期几,该方法返回值为0-6
import datetime
day = datetime.datetime(2019, 7, 25)
print("星期%d" % (day.weekday() + 1))
方法三
方法三利用的是datetime对象的strftime()方法,计算星期几,返回值为1-7
import datetime
anyday = int(datetime.datetime(2019, 7, 25).strftime("%w"))
print("星期%d"%(anyday))