45 lines
881 B
C
45 lines
881 B
C
// Modified from C10 Ex5
|
|
|
|
#include <stdlib.h>
|
|
#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 argc, char *argv[]) {
|
|
int rc, year, month, day, nd;
|
|
|
|
if ( argc != 4 )
|
|
{
|
|
printf ("USAGE: %s year month day\n",argv[0]);
|
|
exit (0);
|
|
}
|
|
|
|
sscanf(argv[1],"%d",&year);
|
|
sscanf(argv[2],"%d",&month);
|
|
sscanf(argv[3],"%d",&day);
|
|
|
|
nd = date_to_day(year, month, day);
|
|
print_day_of_week(nd);
|
|
|
|
return 0;
|
|
}
|