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 ...