Turbo C : Calendar

#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <ctype.h>

unsigned long days=0;

void display(int n)

{
int i, column, k, flag=0, j;
printf("Sun Mon Tues Wed Thur Fri Sat
");
for(i=1; i<=n; i++)
{
k=days%7;
if(flag==0)
{
for(j=1; j<=k; j++)
printf(" ");
flag=1;
column=k;
}
printf("%d ", i);
column++;
if(column%7==0)
printf("
");
}
printf("Press any key to continue");
getch();
}

void calculate(int year)
{
int i, month;
for(i=1899; i<year; i++)
{
if((i%400==0)?1:((i%100==0)?0:((i%4==0)?1:0)))

days+=366;
else
days+=365;
}
for(month=1; month<=12; month++)
{
printf(" ");
switch(month)
{
case 1: printf(" JANUARAY %d", year);
display(31);
days+=31;
break;
case 2: printf(" FEBURARY %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", year);
display(31);
days+=31;
break;
case 4: printf(" APRIL %d", year);
display(30);
days+=30;
break;
case 5: printf(" MAY %d", year);
display(31);
days+=31;
break;
case 6: printf(" JUNE %d", year);
display(30);
days+=30;
break;
case 7: printf(" JULY %d", year);
display(31);
days+=31;
break;
case 8: printf(" AUGUST %d", year);
display(31);
days+=31;
break;
case 9: printf(" SEPTEMBER %d", year);
display(30);
days+=30;
break;
case 10: printf(" OCTOBER %d", year);
display(31);
days+=31;
break;
case 11: printf(" NOVEMBER %d", year);
display(30);
days+=30;
break;
case 12: printf(" DECEMBER %d", year);
display(31);
days+=31;
break;
}
}
}

void main()
{
char ch[10];
int i, year, choice;
do
{
clrscr();
days=0;
printf("Enter the year in 'yyyy' format:");
scanf("%s", ch);
for(i=0; i<strlen(ch); i++)
if(ch[i]<'0' || ch[i]>'9')
{
printf("Invalid Year!");
printf("END OF PROGRAM");
getch();
exit(0);
}
year = atoi(ch);

clrscr();
printf("Calender for Year %d", year);
printf("**********************");
calculate(year);

printf("*******************************************");
printf("Press 1 to continue, 2 to exit");
scanf("%d", &choice);
}while(choice==1);
clrscr();
printf("END OF PROGRAM");
getch();
}

0 comments: