C语言案例(1)——给出年月日,计算该日是

1,根据下面的计算公式即可得知某年某月某日是星期几
s=x-1+[(x-1)/4]-[(x-1)/100]+[(x-1)/400]+c
x:公元年数,c:从这一年的元旦开始算到这天为止的天数(包括这天在内),式子中的方括号是取整运算。
2、求出s后,在用s对7取余数,即s%7,余数是0,则为星期天,为1是星期一,以此类推。
3、程序很大一部分在判断年份是闰年还是平年,主要区别在2月的天数。

程序很简单,适合练手:

/************************************************************************/
/*给定年月日,计算该日是星期几*/
/************************************************************************/
#include<stdio.h>
int main()
{ 
 int a,b,c,d,s,z;
 printf("请输入年月日xxxx,yy,zz:");
 scanf("%d,%d,%d",&a,&b,&c);
 if((a%4==0&&a%100!=0)||a%400==0)//闰年
 {
  if(b==1){d=c;}
  if(b==2){d=c+31;}
  if(b==3){d=c+60;}
  if(b==4){d=c+91;}
  if(b==5){d=c+121;}
  if(b==6){d=c+152;}
  if(b==7){d=c+182;}
  if(b==8){d=c+213;}
  if(b==9){d=c+244;}
  if(b==10){d=c+274;}
  if(b==11){d=c+305;}
  if(b==12){d=c+335;}
 }
 else
 {
  if(b==1){d=c;}
  if(b==2){d=c+31;}
  if(b==3){d=c+59;}
  if(b==4){d=c+90;}
  if(b==5){d=c+120;}
  if(b==6){d=c+151;}
  if(b==7){d=c+181;}
  if(b==8){d=c+212;}
  if(b==9){d=c+243;}
  if(b==10){d=c+273;}
  if(b==11){d=c+304;}
  if(b==12){d=c+334;}
 }
  s=a-1+(a-1)/4-(a-1)/100+(a-1)/400+d;
  z=s%7;
  if(z==0)printf("今天是星期天\n");
  if(z==1)printf("今天是星期一\n");
  if(z==2)printf("今天是星期二\n");
  if(z==3)printf("今天是星期三\n");
  if(z==4)printf("今天是星期四\n");
  if(z==5)printf("今天是星期五\n");
  if(z==6)printf("今天是星期六\n");
 return 0;
}

猜你喜欢

转载自blog.csdn.net/KXL_888/article/details/82846105
今日推荐