Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * prompt for month
- */
- int getMonth()
- {
- int month;
- cout << "Enter a month number: ";
- cin >> month;
- if (month < 1 || month > 12)
- {
- cout << "Month must be between 1 and 12." << endl;
- cin >> month;
- }
- return month;
- }
- /*
- * prompt for year
- */
- int getYear()
- {
- int year;
- cout << "Enter year: ";
- cin >> year;
- if (year < 1753)
- {
- cout << "Year must be 1753 or later."<< endl;
- cin >> year;
- }
- return year;
- }
- /*
- * to find it it's a leap year
- */
- bool isLeapYear(int year)
- {
- if (year % 4 == 0 && year % 100 == 0 || year % 400 == 0)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- /*
- * to set the days in the month
- */
- int daysInMonth(int month, int year)
- {
- int numDays = 0;
- if (month == 1 || month == 3 || month == 5 || month == 7
- || month == 8 || month == 10 || month == 12)
- {
- numDays = 31;
- return numDays;
- }
- else if (month == 2)
- {
- if (isLeapYear(year))
- {
- numDays = 29;
- }
- else
- {
- numDays = 28;
- }
- return numDays;
- }
- else
- {
- numDays = 30;
- return numDays;
- }
- return numDays;
- }
- /*
- * to calculate the year (obviously)
- */
- int calcYears(int years)
- {
- int year;
- years = year - 1753;
- return years;
- }
- /*
- * to calculate the offset
- */
- int computeOffset(int month, int year)
- {
- int numDays;
- int years;
- int months = calcYears(years) * 12 + month - 1;
- for (int i = 0; i > months; i++)
- {
- numDays += daysInMonth(i % 12, i / 12);
- }
- int offset = numDays % 7;
- return offset;
- }
- /*
- * to display the month and year
- */
- int header(int month, int year)
- {
- if (month == 1)
- {
- cout << "January, " << year;
- else if (month == 2)
- {
- cout << "Febuary, " << year;
- }
- else if (month == 3)
- {
- cout << "March, " << year;
- }
- else if (month == 4)
- {
- cout << "April, " << year;
- }
- else if (month == 5)
- {
- cout << "May, " << year;
- }
- else if (month == 6)
- {
- cout << "June, " << year;
- }
- else if (month == 7)
- {
- cout << "July, " << year;
- }
- else if (month == 8)
- {
- cout << "August, " << year;
- }
- else if (month == 9)
- {
- cout << "September, " << year;
- }
- else if (month == 10)
- {
- cout << "October, " << year;
- }
- else if (month == 11)
- {
- cout << "November, " << year;
- }
- else if (month == 12)
- {
- cout << "December, " << year;
- }
- cout << endl;
- return 0;
- }
- /*
- * to display the calendar
- */
- void displayCalendar(int numDays, int offset)
- {
- cout << endl;
- int month, year;
- header(month, year);
- cout << " Su Mo Tu We Th Fr Sa\n";
- if (offset != 6)
- {
- for (int i = 0; i <= offset; i++)
- {
- cout << " ";
- }
- }
- for (int day = 1; day < numDays; day++)
- {
- if (!(offset == 6 && day == 1))
- {
- if ((offset + day) % 7 == 0)
- {
- cout << endl;
- }
- }
- cout << setw(4) << day;
- }
- cout << endl;
- }
- /*
- * executing the program
- */
- int main()
- {
- int numDays = 0;
- int offset = 0;
- int month = getMonth();
- int year = getYear();
- offset = computeOffset(month, year);
- numDays = daysInMonth(month, year);
- displayCalendar(offset, numDays);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement