Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. */
  2. #include <iostream>
  3. #include <iomanip> //Манипуляторы для поточных вводов-выводов
  4. #include <time.h> //Это наша суть, работа со временем
  5. #include <fstream> //Файловые потоки ввода/вывода
  6.  
  7. using namespace std;
  8.  
  9. void main(void)
  10. {
  11. setlocale(LC_ALL,"Russian");
  12. int cYear; //Год на который будет разрабатыватся календарь
  13. struct tm *date; //Структурно календарной даты
  14. time_t temp = time(NULL);
  15. char *Month[] = {"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь","Ноябрь", "Декабрь"};
  16.  
  17. ofstream file("Calendar.txt"); //Файловый ввод
  18.  
  19.  
  20. cout << "Введите год : ";
  21. cin >> cYear; //Ввод года
  22.  
  23. //Поставим date в 1 января введенного года
  24. date = localtime(&temp); //Получим текущую дату
  25. date->tm_year = cYear - 1900;
  26. date->tm_mon = 0; //Это январь
  27. date->tm_mday = 1; //Это первое число
  28.  
  29. time_t a = mktime(date); //Создадим time_t исходя из нашей даты
  30. int limitsDay = date->tm_year; //Для цикла определим текущий год из структуры
  31. int Selection = -1; //Опция выбора (смещение строки) если текущий месяц закончился
  32.  
  33. //Пока структура указывает еще на введенный год
  34. while (date->tm_year == limitsDay)
  35. {
  36. if (Selection != date->tm_mon) //Проверим не закончился ли текущий месяц (нам же шапку вывести нужно)
  37. {
  38. //А если месяц закончился, то перейдем на след. строку
  39. cout<< endl;
  40. file<< endl;
  41.  
  42. //Выведим название месяца
  43. cout<< endl<< Month[date->tm_mon] << endl;
  44. file<< endl<< Month[date->tm_mon] << endl;
  45.  
  46. //Выведим шапку дней недели
  47. cout<< setw(3) << "Вс"<< setw(3) << "Пн"<< setw(3) << "Вт"<< setw(3) << "Ср"<< setw(3) << "Чт"<< setw(3) << "Пт"<< setw(3) << "Сб"<<endl;
  48. file<< setw(3) << "Вс"<< setw(3) << "Пн"<< setw(3) << "Вт"<< setw(3) << "Ср"<< setw(3) << "Чт"<< setw(3) << "Пт"<< setw(3) << "Сб"<<endl;
  49.  
  50. Selection = date->tm_mon; //Перезапишим Selection в уже новый-текущий месяц
  51. if (date->tm_wday != 0) //Если день недели в новом месяце не сначало, то отделим пробелами
  52. {
  53. for (int i = 0; i < date->tm_wday; i++)
  54. {
  55. cout<< setw(3) << "";
  56. file<< setw(3) << "";
  57. }
  58. }
  59. }
  60.  
  61. cout<<setw(3)<<date->tm_mday; //Вывод дня в месяце
  62. file<< setw(3) << date->tm_mday;
  63.  
  64. if (date->tm_wday == 6) //Если дни недели закончились перейдем на новую строку
  65. {
  66. cout << endl;
  67. file << endl;
  68. }
  69. date->tm_mday++; //Добавим 1 день
  70.  
  71. a = mktime(date); //Свормируем новое время по данным структуры
  72. }
  73.  
  74. cout << endl;
  75. file.close(); //Закроем файл
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement