怎样才能快速计算出 某年某月某日 是星期几 ?

如题所述

在計算此問題上比較常用的還是基姆拉尔森计算公式(具體介紹可在網上搜索) W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 d天 m月 y年 1月2月换算为去年的13、14月计算,也即2007年的1月和2月在公式中體現為2006年的13和14月,雖然與實際不符但這是邏輯的需要。 看網上此類代碼很多,但測了幾個居然發現還有錯誤,現在貼出來一個已經測試過的。此程序是我從c轉過來的也比較簡單(因爲不知道作者是誰,這裡只能說聲謝拉!)。 package edu.calendar.countweekday; /** * 計算某天為星期幾 * @author hf * */ public class XingQi { /** * * @param y 年 * @param m 月 * @param d 日 * @return */ public String suan(int y,int m,int d) { if(m==1) {m=13;y--;} if(m==2) {m=14;y--;} int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; String weekstr=""; switch(week) { case 0: weekstr="一"; break; case 1: weekstr="二"; break; case 2: weekstr="三"; break; case 3: weekstr="四"; break; case 4: weekstr="五"; break; case 5: weekstr="六"; break; case 6: weekstr="日"; break; } return weekstr; } } 希望能给你提供参考。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-15
首先任想一个日子
S=[x-1]+[(x-1)/4]-[(x-1)/100]+[(x-1)/400]+C
x表示公元年数
C表示这一年元旦到这天为止(包括这天)的日数
[x]表示高斯取整函数,即不超过[]内的数x的最大整数
S/7的余数即为这一天的星期数
相似回答