posts - 124, comments - 23, trackbacks - 41, articles - 2
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

C#实现的根据年月日计算星期几的函数

Posted on 2008-04-07 16:59 李海 阅读(30) 评论(1)  编辑 收藏 所属分类: VS 2005
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 7: 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; 
  }

调用方法:
Label2.Text=CaculateWeekDay(2004,12,9);

Feedback

#1楼    回复  引用    

2008-04-10 23:27 by 康丽娜 [未注册用户]
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
呵呵,学习喽

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: