Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstdio>
  3. using namespace std;
  4. void print(int line) {
  5. if (line == 1)
  6. printf("%21s%23s%23s", "January", "February", "March");
  7. if (line == 2)
  8. printf("%21s%23s%23s", "April", "May", "June");
  9. if (line == 3)
  10. printf("%21s%23s%23s", "July", "Augost", "September");
  11. if (line == 4)
  12. printf("%21s%23s%23s", "October", "November", "December");
  13. cout << endl;
  14. }
  15. bool leap_year(int year) {
  16. return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
  17. }
  18. int days_in_the_year(int year) {
  19. return 365 + leap_year(year);
  20. }
  21. int days_in_the_month(int mounth, int year) {
  22. if (mounth <= 7 && mounth % 2 || mounth >= 8 && !(mounth % 2))
  23. return 31;
  24. if (mounth == 2)
  25. return 28 + leap_year(year);
  26. return 30;
  27. }
  28. int days_after_01_January(int day, int mounth, int year) {
  29. int result = day;
  30. for (int i = 1; i < mounth; i++) {
  31. result += days_in_the_month(i, year);
  32. }
  33. return result;
  34. }
  35. int days_after_begin_of_our_era(int day, int mounth, int year) {
  36. int result = days_after_01_January(day, mounth, year);
  37. for (int i = 1; i < year; i++) {
  38. result += days_in_the_year(i);
  39. }
  40. return result;
  41. }
  42. int days_between_2_datas(int day1, int mounth1, int year1, int day2, int mounth2, int year2) {
  43. int data1 = days_after_begin_of_our_era(day1, mounth1, year1);
  44. int data2 = days_after_begin_of_our_era(day2, mounth2, year2);
  45. return data2 - data1;
  46. }
  47. int number_of_weekday(int day1, int mounth1, int year1, int weekday, int day2, int mounth2, int year2) {
  48. int result = days_between_2_datas(day1, mounth1, year1, day2, mounth2, year2);
  49. return 7 - (7 - (result % 7 + weekday) % 7) % 7;
  50. }
  51. int main() {
  52. int year;
  53. cin >> year;
  54. for (int line = 1; line <= 4; line++) {
  55. print(line);
  56. for (int week = 0; week <= 5; week++) {
  57. if (week == 0) {
  58. for (int month = (line - 1) * 3 + 1; month <= line * 3; month++) {
  59. int day_1_Of_Month = number_of_weekday(17, 1, 2017, 2, 1, month, year);
  60. for (int i = 1, j = 1; i <= 7 && j <= 7; i++, j++) {
  61. while (j < day_1_Of_Month) {
  62. printf("%3s", " ");
  63. j++;
  64. }
  65. printf("%3i", i);
  66. }
  67. cout << " ";
  68. }
  69. }
  70. else {
  71. for (int month = (line - 1) * 3 + 1; month <= line * 3; month++) {
  72. int number = week * 7 - number_of_weekday(17, 1, 2017, 2, 1, month, year) + 2;
  73. int d_day = 0;
  74. for (d_day = 0; d_day < 7 && number + d_day <= days_in_the_month(month, year); d_day++) {
  75. printf("%3i", number + d_day);
  76. }
  77. while (d_day + number >= days_in_the_month(month, year) && d_day < 7) {
  78. printf("%3s", " ");
  79. d_day += 1;
  80. }
  81. cout << " ";
  82. }
  83. }
  84. cout << endl;
  85. }
  86. }
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement