Code:
// simp_calendar.cpp : Defines the entry point for the console application.
// Written Visual Studio 2005 C.
// Starting days are ONE day later from the previous year unless a leap year then they are TWO.
#include <stdio.h>
// January 1st, 2023 was a SUNDAY.
// January 1st, 1598 was a SUNDAY.
// 1600 was a leap year.
int global_year_printing=1598;
int global_month_printing=0;
int day_start_count=1; // Starting count day 1-7 of the week start should NEVER be more than 7.
// prints the title days of the week
int print_titles_of_week() {
printf("\n\tSun\tMon\tTue\tWed\tThu\tFri\tSat\n");
return 0;
}
// prints the days of each month
int print_days_of_month(int month) {
int end_day=0;
if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) {
end_day=31;
}
if (month==4 || month==6 || month==9 || month==11) {
end_day=30;
}
if (month==2) {
end_day=28;
}
if (month==2 && global_year_printing%4==0) {
end_day=29;
}
for (int x=1; x<=day_start_count-1; x=x+1) {printf("\t"); }
for (int n=1; n<end_day+1; n=n+1) {
printf("\t%d",n);
day_start_count=day_start_count+1;
if (day_start_count==8) { printf("\n"); day_start_count=1; }
}
printf("\n");
return 0;
}
int print_month(int monthsyear) {
printf("\n\t%d", global_year_printing);
if (monthsyear==1) { printf("\tJANUARY\n"); }
if (monthsyear==2) { printf("\tFEBRUARY\n"); }
if (monthsyear==3) { printf("\tMARCH\n"); }
if (monthsyear==4) { printf("\tAPRIL\n"); }
if (monthsyear==5) { printf("\tMAY\n"); }
if (monthsyear==6) { printf("\tJUNE\n"); }
if (monthsyear==7) { printf("\tJULY\n"); }
if (monthsyear==8) { printf("\tAUGUST\n"); }
if (monthsyear==9) { printf("\tSEPTEMBER\n"); }
if (monthsyear==10) { printf("\tOCTOBER\n"); }
if (monthsyear==11) { printf("\tNOVEMBER\n"); }
if (monthsyear==12) { printf("\tDECEMBER\n"); }
return 0;
}
int get_year () {
printf("Enter the year to print after 1600: ");
scanf("%d", &global_year_printing);
if (global_year_printing > 1598) { day_start_count=global_year_printing-1598+1; }
if (global_year_printing > 1600) {
day_start_count=day_start_count+((global_year_printing-1600)/4);
day_start_count=day_start_count+1;
}
day_start_count=day_start_count%7;
if (day_start_count==0) {day_start_count=1;}
return 0;
}
int main() {
get_year();
for (int months_of_year_loop=1; months_of_year_loop<13; months_of_year_loop=months_of_year_loop+1 ) {
print_month(months_of_year_loop);
print_titles_of_week();
print_days_of_month(months_of_year_loop);
}
//printf("\ntest:%d\n", 5/4);
return 0;
}