calendar program using switch case
calendar program using switch case
#include<stdio.h>
#include<string.h>
int daynumber(int day,int month,int year)
{
int t[]={0,3,2,5,0,3,5,1,4,6,2,4};
return (year+(year/4)-(year/100)+(year/400)+t[month-1]+day)%7;
}
char *getmonthname(int n)
{
char *months[]={"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"};
return(months[n]);
}
int numberofdays(int n,int year)
{
switch(n)
{
case 0:
return(31);
case 1:
{
if(year%400==0 || (year%4==0 && year%100!=0))
return(29);
else
return(28);
}
case 2:
return(31);
case 3:
return(30);
case 4:
return(31);
case 5:
return(30);
case 6:
return(31);
case 7:
return(31);
case 8:
return(30);
case 9:
return(31);
case 10:
return(30);
case 11:
return(31);
}
}
void printcalender(int year)
{
printf("calender %d\n",year);
int days,i,j,k;
int cur=daynumber(1,1,year);
for(i=0;i<12;i++)
{
days=numberofdays(i,year);
printf("\n %s \n",getmonthname(i));
printf(" sun mon tue wed thu fri sat\n");
for(k=0;k<cur;k++)
{
printf(" ");
}
for(j=1;j<=days;j++)
{
printf("%5d",j);
if(++k>6)
{
k=0;
printf("\n");
}
}
if(k)
{
printf("\n");
}
cur=k;
}
return;
}
int main()
{
int year;
printf("enter year: ");
scanf("%d",&year);
printcalender(year);
return(0);
}
Comments
Post a Comment