| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 714 人关注过本帖
标题:[求助]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
快速回复:[求助]C#实现的根据年月日计算星期几的函数
数据加载中...
 
   



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

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