#include <stdio.h>
/* Function to print calendar */
void calendar(int ar[7][7], int i, int j, int month,
int count, int yearCounter, int year)
{
/* Month Names */
char *months[] = {
"JANUARY","FEBRUARY","MARCH","APRIL",
"MAY","JUNE","JULY","AUGUST",
"SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER"
};
/* Print heading only for required year */
if (yearCounter == year) {
printf("\n____________________________\n");
printf("* %s - %d *\n", months[month-1], year);
printf("Su Mo Tu We Th Fr Sa\n");
printf("____________________________________\n");
}
j = j % 7;
/* Days in month */
int days = 31;
/* Leap year condition */
if ((yearCounter % 400 == 0) ||
(yearCounter % 4 == 0 && yearCounter % 100 != 0))
{
if (month == 2)
days = 29;
}
else if (month == 2)
days = 28;
if (month == 4 || month == 6 ||
month == 9 || month == 11)
days = 30;
int n = 1;
/* Fill calendar matrix */
for (i = 0; i < 7; i++) {
while (n <= days) {
if (j == 7) {
j = 0;
break;
}
ar[i][j] = n;
n++;
j++;
}
}
int k = j % 7;
/* Print calendar */
if (yearCounter == year) {
printf("\n");
for (i = 0; i < 7; i++) {
for (j = 0; j < 7; j++) {
if (ar[i][j] == 0)
printf(" ");
else
printf("%-5d", ar[i][j]);
}
printf("\n");
}
}
/* Reset array */
for (i = 0; i < 7; i++)
for (j = 0; j < 7; j++)
ar[i][j] = 0;
j = k;
month++;
if (month > 12) {
month = 1;
yearCounter++;
}
/* Stop condition */
if (count == 500)
return;
/* Recursive call */
calendar(ar, i, j, month, count + 1, yearCounter, year);
}
/* Global calendar array */
int mo[7][7];
int year;
int main()
{
printf("PLANNER CALENDAR\n\n");
printf("Enter Year in range [1994,2025]: ");
scanf("%d", &year);
calendar(mo, 0, 6, 1, 1, 1994, year);
return 0;
}
0 Comments