Python如何判斷某天是星期幾

2021-09-04 05:46:47 字數 2597 閱讀 8351

1、依次輸入要查詢日期的年、月、日;

2、將輸入的日期與2023年進行比較

解釋一下為什麼要以2023年去劃分,其實不管輸入的年份大於還是小於2023年,都是閏年天數加366,否則天數加365,其最主要的差別是在月份的計算上,其差別可以具體參考**。

具體思路見下面的**:

#隨機輸入日期,計算出星期幾

print("2023年1月1號是星期一,作為參考日期")

year=int(input("請輸入要查詢的年份:"))

mon=int(input("請輸入要查詢的月份:"))

day=int(input("請輸入要查詢的天:"))

list1=[31,29,31,30,31,30,31,31,30,31,30,31] #閏年2月份為29天

list2=[31,28,31,30,31,30,31,31,30,31,30,31] #平年2月份為28天

date=0

years=0

#輸入的年份大於等於2023年的判斷過程如下:

if year>=2018:

for j in range(2018,year):

if (j%4==0)&(j%100!=0) or j%400==0: #閏年

years += 366

else: #平年

years += 365 #閏年天數加366天,平年加365天

if ((year%4)==0)&((year%100)!=0) or ((year%400)==0):

for i in range(mon-1):

date += list1[i] #閏年月份按list1相加

days=date+day

else:

for i in range(mon-1):

date += list2[i] #平年月份按list2相加

days=date+day

total=days+years

ji=total%7 #參考日期是2023年1月1號是星期一

#由於"ji=0"時,輸出的結果是"星期0",因此對"ji"進行了判斷,使"ji=0"時輸出的結果為"星期7"

if ji!=0:

print(year,'年',mon,'月',day,'日','是星期',ji)

else:

print(year,'年',mon,'月',day,'日','是星期',7)

#輸入的年份小於2023年的判斷過程如下:

else:

for j in range(year+1,2018):

if (j%4==0)&(j%100!=0) or j%400==0:

years += 366

else:

years += 365

if ((year%4)==0)&((year%100)!=0) or ((year%400)==0):

for i in range(mon-1,12):

date += list1[i]

days=date-day+1

else:

for i in range(mon-1,12):

date += list2[i]

days=date-day+1

total=days+years

ji=total%7

if ji!=0:

#餘數為1是星期7,餘數為2是星期6...,總結規律為8-ji

print(year,'年',mon,'月',day,'日','是星期',8-ji)

else:

print(year,'年',mon,'月',day,'日','是星期',1)

結果如下:

d:\st11\python\lesson3.12.9>date.py

2023年1月1號是星期一,作為參考日期

請輸入要查詢的年份:2018

請輸入要查詢的月份:12

請輸入要查詢的天:24

2018 年 12 月 24 日 是星期 1

d:\st11\python\lesson3.12.9>date.py

2023年1月1號是星期一,作為參考日期

請輸入要查詢的年份:2020

請輸入要查詢的月份:7

請輸入要查詢的天:8

2020 年 7 月 8 日 是星期 3

d:\st11\python\lesson3.12.9>date.py

2023年1月1號是星期一,作為參考日期

請輸入要查詢的年份:2012

請輸入要查詢的月份:3

請輸入要查詢的天:4

2012 年 3 月 4 日 是星期 7

d:\st11\python\lesson3.12.9>date.py

2023年1月1號是星期一,作為參考日期

請輸入要查詢的年份:2015

請輸入要查詢的月份:10

請輸入要查詢的天:11

2015 年 10 月 11 日 是星期 7

判斷某天是星期幾

判斷某天是星期幾 public static boolean isleapyear int year 理論基礎 日期格式 y m d,y為年份數 y 1582 m為月份數 02 m m 12 m 3 d為日。相比於通用通用計算公式而言,蔡勒 zeller 公式大大降低了計算的複雜度。3 基姆拉爾森計...

已經某天是星期幾,求某天是星期幾

昨天在一家公司面試,叫我用儲存過程求得下述問題 已知某一天是星期幾,求某天是星期幾,例 已知2010年8月5號星期四,求2010年8月23號星期幾?下面是我寫的儲存過程,由於是剛剛學,所以問題還很多,望各位大蝦們指教。formatted on 2010 8 23 16 29 26 qp5 v5.14...

某天是星期幾

題目描述 澤勒一致性是由克里斯汀 澤勒開發的用於計算某天是星期幾的演算法。這個公式是 h q 26 m 1 10 k k 4 j 4 5j mod 7 其中 一 h 是乙個星期中的某一天 0 為星期六,1 為星期天,2 為星期一 6 為星期五 二 q 是某月的第幾天 三 m 是月份 3 為三月,4 ...