Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstdio>
- using namespace std;
- void print(int line) {
- if (line == 1)
- printf("%21s%23s%23s", "January", "February", "March");
- if (line == 2)
- printf("%21s%23s%23s", "April", "May", "June");
- if (line == 3)
- printf("%21s%23s%23s", "July", "Augost", "September");
- if (line == 4)
- printf("%21s%23s%23s", "October", "November", "December");
- cout << endl;
- }
- bool leap_year(int year) {
- return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
- }
- int days_in_the_year(int year) {
- return 365 + leap_year(year);
- }
- int days_in_the_month(int mounth, int year) {
- if (mounth <= 7 && mounth % 2 || mounth >= 8 && !(mounth % 2))
- return 31;
- if (mounth == 2)
- return 28 + leap_year(year);
- return 30;
- }
- int days_after_01_January(int day, int mounth, int year) {
- int result = day;
- for (int i = 1; i < mounth; i++) {
- result += days_in_the_month(i, year);
- }
- return result;
- }
- int days_after_begin_of_our_era(int day, int mounth, int year) {
- int result = days_after_01_January(day, mounth, year);
- for (int i = 1; i < year; i++) {
- result += days_in_the_year(i);
- }
- return result;
- }
- int days_between_2_datas(int day1, int mounth1, int year1, int day2, int mounth2, int year2) {
- int data1 = days_after_begin_of_our_era(day1, mounth1, year1);
- int data2 = days_after_begin_of_our_era(day2, mounth2, year2);
- return data2 - data1;
- }
- int number_of_weekday(int day1, int mounth1, int year1, int weekday, int day2, int mounth2, int year2) {
- int result = days_between_2_datas(day1, mounth1, year1, day2, mounth2, year2);
- return 7 - (7 - (result % 7 + weekday) % 7) % 7;
- }
- int main() {
- int year;
- cin >> year;
- for (int line = 1; line <= 4; line++) {
- print(line);
- for (int week = 0; week <= 5; week++) {
- if (week == 0) {
- for (int month = (line - 1) * 3 + 1; month <= line * 3; month++) {
- int day_1_Of_Month = number_of_weekday(17, 1, 2017, 2, 1, month, year);
- for (int i = 1, j = 1; i <= 7 && j <= 7; i++, j++) {
- while (j < day_1_Of_Month) {
- printf("%3s", " ");
- j++;
- }
- printf("%3i", i);
- }
- cout << " ";
- }
- }
- else {
- for (int month = (line - 1) * 3 + 1; month <= line * 3; month++) {
- int number = week * 7 - number_of_weekday(17, 1, 2017, 2, 1, month, year) + 2;
- int d_day = 0;
- for (d_day = 0; d_day < 7 && number + d_day <= days_in_the_month(month, year); d_day++) {
- printf("%3i", number + d_day);
- }
- while (d_day + number >= days_in_the_month(month, year) && d_day < 7) {
- printf("%3s", " ");
- d_day += 1;
- }
- cout << " ";
- }
- }
- cout << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement