【例
4-29
】查询某天是星期几
输入某一天,查询该天是星期几。输入格式为
yyyymmdd
(如
1999
年
10
月
1
日应输入为
19991001
)。
#include <stdio.h>int main(){// c: century-1, y: year, m:month, w:week, d:dayint c, y, m, w, d, longday = 1;printf("Query what day a certain date is\n");printf("Note: the format of the day is like 20120101\n");printf("The input is between 101 and 99991231\n\n");while (1) {printf("\nInput date (or -1 to quit): ");scanf("%d", &longday);if(longday == -1) break ;if(!(longday >= 101 && longday <= 99991231)) {printf("Wrong input format, try again!\n");continue ;}y = longday/10000;m = (longday%10000)/100;d = longday%100;if(m<3) {y = y-1;m = m+12;}c = y/100;y = y%100;// Zeller formulaw = (y + y/4 + c/4 -2*c+ (26*(m+1))/10 + d - 1)%7;if(w<0) w+=7;printf("The day is: ");switch (w){case 0:printf("Sun\n");break;case 1:printf("Mon\n");break;case 2:printf("Tue\n");break;case 3:printf("Wed\n");break;case 4:printf("Thu\n");break;case 5:printf("Fri\n");break;case 6:printf("Sat\n");break;}}return 0;}