在devc++用c语言根据日期求星期(年>1900),先判断日期是否合法,不合法需给出错误提示信息

如题所述

#include <stdio.h>

int main()

{ int y,m,d,w,i,mon[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};

  char week[7][4]= {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

  scanf("%d%d%d",&y,&m,&d);

  mon[2]+=(y%4==0&&y%100||y%400==0);

  if(y<1901||m<1||m>12||d<1||d>mon[m])

  { printf("Date input error!\n");

    return 0;

  }

  y--;

  w=y+y/4-y/100+y/400+d;

  for(i=1; i<m; i++)w+=mon[i];

  w%=7;

  printf("%d-%d-%d is %s.\n",++y,m,d,week[w]);

  return 0;

}

温馨提示:答案为网友推荐,仅供参考
相似回答