程序很简单就直接贴代码:
#include<stdio.h> int main() { int year; int month; int day; int week; long int x; int y; int z; int n; long int p; int sum=0; int i=1970; int k=0; scanf("%d-%d-%d",&year,&month,&day); if(year<1970||year>9999) { printf("year is error.\n"); return 0; } else { while(year>i) { if((i%4==0&&i%100!=0)||i%400==0) { k++; } i++; } } n=year-1970; x=366*k+365*(n-k); if(month>12||month<0) { printf("month is error.\n"); return 0; } else { if((year%4==0&&year%100!=0)||year%400==0) { int a1[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; for(i=0;i<month;i++) sum+=a1[i]; } else { int a2[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; for(i=0;i<month;i++) sum+=a2[i]; } y=sum; } if(day<0) { printf("day is error.\n"); return 0; } else { if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { if(day>31) { printf("day is error.\n"); return 0; } } else if (month==4||month==6||month==9||month==11) { if(day>30) { printf("day is error.\n"); return 0; } } if((year%4==0&&year%100!=0)||year%400==0) { if(month==2) { if(day>29) { printf("day is error.\n"); return 0; } } } else { if(month==2) { if(day>28) { printf("day is error.\n"); return 0; } } } } z=day; p=x+y+z-4; week=p%7; switch (week) { case 0: printf("Sunday\n"); break; case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); break; case 3: printf("Wednesday\n");break; case 4: printf("Thursday\n"); break; case 5: printf("Friday\n"); break; case 6: printf("Saturday\n"); break; } return 0; }