E(char*s){printf("Error: Invalid %s\n",s);exit(1);}main(y,m,d,L,w){printf("Enter date (YYYY MM DD): ");scanf("%d %d %d",&y,&m,&d);L=(y%4)?0:(y%100)?1:(y%400)?0:1;if(y<1|y>10000)E("year");if(m<1|m>12)E("month");if(d<1)E("day");if(m==2&(L&&d>29)|(L==0&d>28)|"101010110101"[m-1]-'0'&d>31|"000101001010"[m-1]-'0'&d>30)E("day");w=((y%100)/4+d+"144025036146"[m-1]-'0'-(L&&m<3)-((y/100)%4)*2+(y%100)+12)%7;char*s="!(/7AJQ6 %d/%d/%d: %s\n\0Sunday\0Monday\0Tuesday\0Wednesday\0Thursday\0Friday\0Saturday";printf(s+19,y,m,d,s+s[w]);}