Beruflich Dokumente
Kultur Dokumente
unsigned long days=0; //stores the days elapsed since 01.01.1899 void display(int n) //contains the number of days to display { int i, column, k, flag=0, j; printf("Sun Mon Tues Wed Thur Fri Sat "); for(i=1; i<=n; i++) { k=days%7;//remainder gives the starting day of each month if(flag==0) { for(j=1; j<=k; j++)//controls tabs of first week printf(" ");
column=k; } printf("%d column++; if(column%7==0)//prints new line at the end of each week printf(" "); } printf(" Press any key to continue ", i);
"); getch(); }
void calculate(int year) //function calculates no. of days elapsed since 1899 { int i, month; for(i=1899; i<year; i++) //1899 chosen because Jan 1, 1899 is a Sunday { if((i%400==0)?1:((i%100==0)?0:((i%4==0)?1:0)))
/*This is because a leap year does not strictly fall on fourth year. If a year is divisible by 4, then it is a leap
every
year, but if that year is divisible by 100, then it is not a leap year. However, if the year is also divisible by 400, then it is a leap year. Eg: 1900 is not a leap year*/
"); switch(month) /*switch case used to display each month and increment no. of days*/ { case 1: printf(" JANUARAY %d
", year); if((year%400==0)?1:((year%100==0)?0:((year%4==0)?1:0))) { display(29); days+=29; } else { display(28); days+=28; } break; case 3: printf(" MARCH %d
void main() {
char ch[10]; int i, year, choice; do { clrscr(); days=0; printf("Enter the year in 'yyyy' format: "); scanf("%s", ch);//stores input first as a string for(i=0; i<strlen(ch); i++) if(ch[i]<'0' || ch[i]>'9')//checks for invalid inputs { printf("
END OF PROGRAM"); getch(); exit(0); } year = atoi(ch); //converts the year from string to integer datatype clrscr(); printf("