[这是我在CSDN上发表的文章,现在转移到CNBLOGS]
对于何一天是星期几算法的程序时间都比较简单,而在我自己的实际项目中采用的是基姆拉尔森计算公式,所以我在这里给出基姆拉尔森计算公式的C#的实现:
// ************************************************
// str_week
//
/// <summary>
/// 返回谋年某月任意一天是星期几的描述
/// </summary>
//y:年,m:月,d:日。在参数都只传入相应的整数
// ********************************************/
private string str_week(int y,int m,int d){
int a=7; // 用来保存计算得到的星期几的整数
string str_date="";
if((m==1)||(m==2))//如果是一月或二月进行换算
{
m+=12;
y--;
}
a=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; //得到的星期几的整数
switch (a){
case 0:
str_date="星期一";
break;
case 1:
str_date="星期二";
break;
case 2:
str_date="星期三";
break;
case 3:
str_date="星期四";
break;
case 4:
str_date="星期五";
break;
case 5:
str_date="星期六";
break;
case 6:
str_date="星期日";
break;
}
return str_date;
}