标题:[求助]C#实现的根据年月日计算星期几的函数
只看楼主
唐伯猫
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:5323
专家分:58
注 册:2005-8-9
结帖率:25%
 问题点数:0 回复次数:1 
[求助]C#实现的根据年月日计算星期几的函数

算法如下: 基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日数,m表示月份数,y表示年数。

注意:在公式中有个与其他公式不同的地方:

把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。 代码如下: //y-年,m-月,d-日期 string CaculateWeekDay(int y,int m, int d) { if(m==1) m=13; if(m==2) m=14; int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; string weekstr=""; switch(week) { case 1: weekstr="星期一"; break; case 2: weekstr="星期二"; break; case 3: weekstr="星期三"; break; case 4: weekstr="星期四"; break; case 5: weekstr="星期五"; break; case 6: weekstr="星期六"; break; case 7: weekstr="星期日"; break; }

return weekstr; } 调用方法: Label2.Text=CaculateWeekDay(2004,12,9); 如果把后面括号里的天数该成超过31的数字,仍能运行出来结果,怎么做才算完美呢?

搜索更多相关主题的帖子: 年月日 函数 
2005-09-01 11:41
houyunqing
Rank: 1
等 级:新手上路
帖 子:476
专家分:0
注 册:2005-4-1
得分:0 
在进行运算之前自己检查一下就可以了吧~

寻求挑战,追求完美 Oh,my god!
2005-09-03 08:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-26480-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.230996 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved