46 lines
812 B
C
46 lines
812 B
C
|
#include <stdio.h>
|
||
|
|
||
|
int date_to_day(int year, int month, int day) {
|
||
|
if (month < 3) {
|
||
|
month += 12;
|
||
|
year -= 1;
|
||
|
}
|
||
|
|
||
|
return ((13*month+3)/5 + day + year + year/4 - year/100 + year/400) % 7;
|
||
|
}
|
||
|
|
||
|
void print_day_of_week(int day) {
|
||
|
switch (day) {
|
||
|
case 0:
|
||
|
printf("Monday\n"); break;
|
||
|
case 1:
|
||
|
printf("Tuesday\n"); break;
|
||
|
case 2:
|
||
|
printf("Wednesday\n"); break;
|
||
|
case 3:
|
||
|
printf("Thursday\n"); break;
|
||
|
case 4:
|
||
|
printf("Friday\n"); break;
|
||
|
case 5:
|
||
|
printf("Saturday\n"); break;
|
||
|
case 6:
|
||
|
printf("Sunday\n"); break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
int main() {
|
||
|
int rc, year, month, day, nd;
|
||
|
|
||
|
printf("Enter a day (yyyy-mm-dd): ");
|
||
|
rc = scanf("%d-%d-%d", &year, &month, &day);
|
||
|
if (rc != 3) {
|
||
|
printf("Failed to parse date\n");
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
nd = date_to_day(year, month, day);
|
||
|
print_day_of_week(nd);
|
||
|
|
||
|
return 0;
|
||
|
}
|