by manojthesingham » Tue Sep 01, 2009 8:35 pm
#include<stdio.h>
#include<conio.h>
char *wday[]={"sunday","monday","tuesday","wednesday","thursday","friday","saturday"};
int mday[]={0,31,59,90,120,151,181,212,243,273,304,334,365};
typedef enum{sunday=0,monday,tuesday,wednesday,thursday,friday,saturday}WEEK;
typedef enum{false,true}boolean;
typedef struct{int year,month,day;}DATE;
boolean isLeapYear(int x)
{
if((x%400)==0)
return true;
if((x%100)==0)
return false;
if((x%4)==0)
return true;
return false;
}
const char * dayOfWeek()
{
DATE date;
int y,d,odd=0,t1,t2;
scanf("%d",&(date.day), printf("Day : "));
scanf("%d",&(date.month),printf("Month : "));
scanf("%d",&(date.year), printf("Year : "));
d = isLeapYear(date.year)?(mday[(date.month-1)] +1):mday[(date.month-1)];
d += date.day;
y = date.year-1;
y%=400;
odd+=(y/300);
y%=300;
odd+=3*(y/200);
y%=200;
odd+=5*(y/100);
y%=100;
t1 = y/4; /*remaining leap years*/
t2 = y-t1; /* remaining years*/
odd+=(t1*2)+t2;
odd%=7;
odd = (odd+d%7)%7;
return wday[odd];
}
int main(int argc,char **argv)
{
printf("%s",dayOfWeek());
getch();
return 1;
}
/*
Day : 31
Month : 7
Year : 1989
monday
*/
If world is running, then I am idle..
If I am idle, then the world is running