蔡勒公式(求某一天是星期幾)

w:星期; w對7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世紀(注:一般情況下,在公式中取值爲已經過的世紀數,也就是年份除以一百的結果,而非正在進行的世紀,也就是現在常用的年份除以一百加一;不過如果年份是公元前的年份且非整百數的話,c應該等於所在世紀的編號,如公元前253年,是公元前3世紀,c就等於-3)
y:年(一般情況下是後兩位數,如果是公元前的年份且非整百數,y應該等於cMOD100+100)
m:月(m大於等於3,小於等於14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月來計算,比如2003年1月1日要看作2002年的13月1日來計算)
d:日

String[] ans={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
public String dayOfTheWeek(int day, int month, int year) {
	//w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 蔡勒公式
	if (month<3) { --year; month+=12; }
       int c=year/100, y=year%100;
       int w=(c/4-2*c+y+y/4+13*(month+1)/5+day-1)%7;
       return ans[(w+7)%7];
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章