問題描述
已知2023年11月11日是星期五,問yyyy年mm月dd日是星期幾?注意考慮閏年的情況。尤其是逢百年不閏,逢400年閏的情況。
輸入格式
輸入只有一行
yyyy mm dd
輸出格式
輸出只有一行
w資料規模和約定
1599 <= yyyy <= 2999
1 <= mm <= 12
1 <= dd <= 31,且確保測試樣例中yyyy年mm月dd日是乙個合理日期
1 <= w <= 7,分別代表周一到週日
樣例輸入
2011 11 11
樣例輸出
5
蔡勒公式
蔡勒公式 根據給定的年月日求出對應星期幾
(1)第一種方法就是往後推,先計算出兩個日期差的天數,然後對7取餘。(2)蔡勒公式。
公式 : w= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 (w代表星期幾)
w對7取余得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
注意:蔡勒公式只適合於2023年(中國明朝萬曆十年)10月15日之後的情形。
當年的1,2月要當成上一年的13,14月進行計算。
#include
#include
#include
#include
#include
using
namespace std;
intmain()
if(year>=
1582
&&month>=
10&&day>=4)
x =(day +1+
2* month +3*
( month +1)
/5+ year + year /
4- year /
100+ year /
400)%7
;else
x =(day +1+
2* month +3*
( month +1)
/5+ year + year /4+
5)%7
;printf
("%d\n"
, x)
;return0;
}
#include
#include
using
namespace std;
int d[2]
[13]=
,};int a[7]
=;intleap
(int year)
intleap1
(int year)
intmain()
while
(month>1)
day2=day2+day-1;
printf
("%d\n"
,a[day2%7]
);}return0;
}
藍橋杯 ADV 127 日期計算
問題描述 已知2011年11月11日是星期五,問yyyy年mm月dd日是星期幾?注意考慮閏年的情況。尤其是逢百年不閏,逢400年閏的情況。輸入格式 輸入只有一行 yyyy mm dd 輸出格式 輸出只有一行 w樣例輸入 2011 11 11 樣例輸出 5資料規模和約定 1599 yyyy 2999 ...
藍橋杯 ADV 127 日期計算(試題解析)
提交此題 評測記錄 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 已知2011年11月11日是星期五,問yyyy年mm月dd日是星期幾?注意考慮閏年的情況。尤其是逢百年不閏,逢400年閏的情況。輸入格式 輸入只有一行 yyyy mm dd 輸出格式 輸出只有一行 w資料規模和約...
藍橋杯 2014 3 日期差
歷史上,不同的人類聚居地可能有不同的曆法,因而記錄下來的資料中日期的換算就很麻煩。幸好今天我們統一使用公元紀年法。當然,這種曆法對求兩個日期差多少天也不是十分簡便,但畢竟是可以忍受的。下面的程式計算了兩個日期的差值,兩個日期都使用公元紀年法。請分析程式邏輯,並推斷劃線部分缺失的 int to day...