不查日历 如何算出那一天是星期几

我知道一个式子:S=x-1=(x-1/4)-(x-1/100)=(x-1/100)=C 这里 x是公元的年数 C是从元旦到数其到这一天为止(包括这一天)的天数方括号表示一个是的整体部分。求出S后 除以7 则可得星期几 请问这是为什么 希望能得到一个详细的解答

第1个回答  2008-08-21
Year:年
Month:月
Day:日
WeekDay:最后的星期几,0为星期天

这个是excel中给你做的演示
=MOD(TRUNC(TRUNC((Year/100-1)/4) - 2*TRUNC(Year/100-1) + Year + TRUNC(Year/4) + 13 *TRUNC( (Month+1) / 5) + Day - 1),7)

以下是c语言的算法
WeekDay =Year>0?(5+(Year+1)+(Year-1)/4-(Year-1)/100+(Year-1)/400)%7:(5+Year+Year/4-Year/100+Year/400)%7;
WeekDay = Month>2?(WeekDay+2*(Month+1)+3*(Month+1)/5)%7:(WeekDay+2*(Month+2)+3*(Month+2)/5)%7;
if (((Year%4 == 0 && Year%100 != 0) Year%400 == 0) && Month>2)
{
WeekDay =(WeekDay+1)%7;
}
WeekDay=(WeekDay+Day)%7;
第2个回答  2020-08-06
S=[C÷4]-2C+y+[y÷4]+
2.6×(m+1)+d-1
其中,C是年份第三位起至年份最高位,y是年份后两位,m是月份,d是日期。
2000年2月18日按1999年14月18日算,某年1月按去年13月算。
将算出来的S数值除以7,余数代表星期几,若余数为0,则那天为星期日。
第3个回答  2008-08-21
http://blog.csdn.net/neweroica/articles/315397.aspx

这里有你想知道的答案..去看看啦~(*^_^*)~本回答被提问者采纳
第4个回答  2008-08-21
。。。好恐怖的算式。。。。头昏了。。。