int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return 1; // It's a leap year
}
return 0; // It's not a leap year
}
void NextDate(int *month, int *day, int *year) {
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (*month < 1 || *month > 12 || *day < 1 || *day > 31 || *year < 1812 || *year > 3000) {
printf("Invalid date.\n");
return;
}
if (*month == 2 && isLeapYear(*year)) {
daysInMonth[2] = 29; // February has 29 days in a leap year
}
if (*day < daysInMonth[*month]) {
(*day)++;
} else {
*day = 1;
(*month)++;
if (*month > 12) {
*month = 1;
(*year)++;
}
}
}
void printCalendar(int year) {
int month = 1;
int day = 1;
int currentYear = year;
printf("Calendar for year %d:\n", year);
while (currentYear == year) {
printf("%d-%02d-%02d\n", currentYear, month, day);
NextDate(&month, &day, ¤tYear);
}
}
int main() {
printCalendar(2024);
return 0;
}