
A Program for Displaying the calendar of any year of 21st century
Here's The Program :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m_year, c_d, d, feb_days, j, j1, m=1, n,da,count,m_c=0;
printf("Enter The Year(2000-2999) : ");
scanf("%d",&m_year); //getting year
//1st jan 2000 = saturday
if(m_year>=2000&&m_year<3000)
{
c_d = count_days(m_year); //calling count_days() for the total days between 2000 and the given year
d = g_year(m_year); // Calling g_year for No. Of Days in February of the year
feb_days = 29 - d;
j = c_d % 7; // Getting The Day of 1st Jan
if(j==0)
{
j1==6;
}
else
j1=j-1; //......//
for(m=1;m<=12;m++) //A loo to change month
{
if(m=1) //January month table
{
n=31;
printf("\n\nJanuary\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=2) //February month table
{
n=feb_days;
printf("\n\nFebruary\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=3) //March month table
{
n=31;
printf("\n\nMarch\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=4) //April month table
{
n=30;
printf("\n\nApril\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=5) //May month table
{
n=31;
printf("\n\nMay\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=6) //June month table
{
n=30;
printf("\n\nJune\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=7) //July month table
{
n=31;
printf("\n\nJuly\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=8) //August month table
{
n=31;
printf("\n\nAugust\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=9) //September month table
{
n=30;
printf("\n\nSeptember\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=10) //October month table
{
n=31;
printf("\n\nOctober\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=11) //November month table
{
n=30;
printf("\n\nNovember\n");
printf("SUN MON TUE WED THI FRI SAT \n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
if(m=12) //December month table
{
n=31;
printf("\n\nDecember\n");
printf("SUN MON TUE WED THI FRI SAT\n\n");
m_c=month_chart(n,j1);
j1=m_c;
}
}
}
else
printf("Error");
return 0;
}
}
int count_days(int year) // Getting the total days between 2000 and the given year
{
int ly,non_ly,tot_days,leap_y;
leap_y = g_year(year); // Calling g_year
ly = (year - 2000)/4;
non_ly = year - 2000 - ly;
tot_days = (ly*366) + (non_ly*365) + leap_y; //This is for 2000 is leapyear
return tot_days;
}
int g_year( int l_y) //Cheaking wheather the given year is leapyear or not
{
int c;
if(l_y%4==0)
c = 0;
if(l_y%4!=0)
c=1;
c=1;
return c;
}
}
int month_chart(int last_date , int j_val)
{
int mat[6][7];
int i,j,a=1,n;
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
mat[i][j]=0;
}
}
for(i=0;i<6;i++)
{
if(i==0)
{
for(j=j_val;j<7;j++)
{
mat[i][j]=a;
a++;
}
}
else
{
for(j=0;j<7;j++)
{
mat[i][j]=a;
a++;
if(a>last_date)
break;
}
if(a>last_date)
{
if(j==6) //Getting The 1st Day of next month
{
n=0;
}
if(j!=0)
{
n=j+1;
}
break;
}
}
}
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
if(mat[i][j]!=0)
{
printf("%3d ",mat[i][j]);
}
}
}
}
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
if(mat[i][j]!=0)
{
printf("%3d ",mat[i][j]);
}
else
printf(" ");
}
printf("\n");
}
return n;
}
Video On The Program : https://youtu.be/HAPVJ50GZzshttps://youtu.be/HAPVJ50GZzs




