计算任意一天是星期几

来源:互联网 发布:淘宝站外免费推广 编辑:程序博客网 时间:2024/04/29 08:12

输入为:年月日字符串,如“19940821”

输出为1至7之间的数字,分别代表周一至周日。

代码如下:

#include<iostream>#include<string>using namespace std;int main(){char *p1=new char[50],*p2=new char[50];int Y,M,D;long int W;gets(p1);sprintf(p2,"%08s",p1);//将输入的年月规格化为8位,在左边补零。sscanf(p2,"%04d",&Y);//提取年份sscanf(p2+4,"%02d",&M);//提取月份sscanf(p2+6,"%02d",&D);//提取天W=(Y-1)+(Y-1)/4-(Y-1)/100+(Y-1)/400+D;for(int i=1;i<M;i++){switch(i){case 1:W+=31;break;case 2:W+=28;break;case 3:W+=31;break;case 4:W+=30;break;case 5:W+=31;break;case 6:W+=30;break;case 7:W+=31;break;case 8:W+=31;break;case 9:W+=30;break;case 10:W+=31;break;case 11:W+=30;break;case 12:W+=31;break;}}if((((Y%4)==0)&&((Y%100)!=0))||(Y%400==0))W+=1;cout<<W%7<<endl;}


原创粉丝点击