Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <locale>
  3. #include <time.h>
  4. #include <string.h>
  5. #include <malloc.h>
  6. #include <windows.h>
  7. #include <conio.h>
  8. #include "Time.h"
  9.  
  10. using namespace std;
  11.  
  12. // Сеттер и реализация функции посмотреть на часы
  13. char* settime(struct tm* u)
  14. {
  15.     char s[60];
  16.     char* tmp;
  17.     for (int i = 0; i < 60; i++) { s[i] = 0; }
  18.     int length = strftime(s, 60,"\nВремя: %H:%M:%S\nДата -  %d.%m.%Y, %A",u);
  19.     tmp = (char*)malloc(sizeof(s));
  20.     strcpy(tmp, s);
  21.     return(tmp);
  22. } //Задаём время  
  23. void checkClock() {
  24.     struct tm* u;
  25.     char* f;
  26.     char point[3] = { '.','.','.' };
  27.     while (!_kbhit()) {
  28.         system("cls");
  29.         const time_t timer = time(NULL);
  30.         u = localtime(&timer);
  31.         f = settime(u);
  32.         printf("В данный момент ", timer);
  33.         puts(f);
  34.         cout << "Ожидание символа";
  35.         for (int i = 0; i < 3; i++) {
  36.             cout << point[i];
  37.             Sleep(333);
  38.         }
  39.     }
  40. }
  41. // Часовые пояса
  42. void timeZone(int UTC) {
  43.     int sysH, sysM, sysS;
  44.     class Time T;
  45.     time_t t = time(NULL);
  46.  
  47.     tm* timeinfo = localtime(&t);
  48.     tm ti = *timeinfo;
  49.  
  50.     sysH = ti.tm_hour;
  51.     sysM = ti.tm_min;
  52.     sysS = ti.tm_sec;
  53.  
  54.     if (sysH + UTC > 23) {
  55.         int tmp;
  56.         tmp = (sysH + UTC) - 24;
  57.         cout << tmp << ":" << sysM << ":" << sysS;
  58.     }
  59.     else { cout << sysH + UTC << ":" << sysM << ":" << sysS; };
  60. }
  61.  
  62. void drowTable() {
  63.     char point[3] = { '.','.','.' };
  64.     while (!_kbhit()) {
  65.         system("cls");
  66.         cout << "\t№" << "\tГород          " << "\tЧисленность            \tВремя        \tЧасовой Пояс" << endl;
  67.         cout << "\t1" << "\tКалининград    " << "\tНаселение 500 тыс.\tВремя: "; timeZone(-1); cout << "\t  (UTC + 2)" << endl;
  68.         cout << "\t2" << "\tМосква         " << "\tНаселение 13 млн.\tВремя: "; timeZone(0); cout << "\t (UTC + 3)" << endl;
  69.         cout << "\t3" << "\tНижний новгород" << "\tНаселение >1 млн.\tВремя: "; timeZone(0); cout << "\t (UTC + 3)" << endl;
  70.         cout << "\t4" << "\tВолгоград      " << "\tНаселение >1 млн.\tВремя: ";  timeZone(1); cout << "\t (UTC + 4)" << endl;
  71.         cout << "\t5" << "\tЕкатеринбург   " << "\tНаселение >1 млн.\tВремя: ";  timeZone(2); cout << "\t  (UTC + 5)" << endl;
  72.         cout << "\t6" << "\tОмск           " << "\tНаселение >1 млн.\tВремя: "; timeZone(3); cout << "\t   (UTC + 6)" << endl;
  73.         cout << "\t7" << "\tНовосибирск    " << "\tНаселение >1 млн.\tВремя: "; timeZone(4); cout << "\t    (UTC + 7)" << endl;
  74.         cout << "\t8" << "\tУлан-Удэ       " << "\tНаселение >1 млн.\tВремя: "; timeZone(5); cout << "\t    (UTC + 8)" << endl;
  75.         cout << "\t9" << "\tЯкутск         " << "\tНаселение >1 млн.\tВремя: "; timeZone(6); cout << "\t (UTC + 9)" << endl;
  76.         cout << "\t10"<< "\tВладивосток    " << "\tНаселение >1 млн.\tВремя: "; timeZone(7); cout << "\t    (UTC + 10)" << endl;
  77.         cout << "\nОжидание ввода символа для продолжения";
  78.         Sleep(1001);
  79.         /*for (int i = 0; i < 3; i++) {
  80.             cout << point[i];
  81.             Sleep(333);
  82.         }
  83.         */
  84.     }
  85. }
  86.  
  87. void convertSecond() {
  88.     system("cls");
  89.     int sec = 0;
  90.     cout << "Введите секунды для перевода ";
  91.     cin >> sec;
  92.     Time t3(sec);
  93.     system("cls");
  94.     cout << sec << " секунд = ";
  95.     t3.print();
  96.     getchar(); getchar();
  97. }
  98.  
  99. void mainMenu() {
  100.     system("cls");
  101.     cout << " Меню:"                                    << endl;
  102.     Sleep(70);
  103.     cout << "_________________________________________" << endl;
  104.     Sleep(70);
  105.     cout << "| 1 - Посмотреть на часы       |"          << endl;
  106.     Sleep(70);
  107.     cout << "| 2 - Время в городах Росии              |"  << endl;
  108.     Sleep(70);
  109.     cout << "| 3 - Перевод секунд в минуты и часы    |" << endl;
  110.     Sleep(70);
  111.     cout << "| 4 - Узнать нужное время до встречи |"  << endl;
  112.     Sleep(70);
  113.     cout << "| - - - - - - - - - - - - - - - - - - - |" << endl;
  114.     Sleep(70);
  115.     cout << "| 0 - Выход из программы           |"      << endl;
  116.     Sleep(70);
  117.     cout << "|_______________________________________|" << endl;
  118.     cout << "Ввод: ";
  119.     int menu;
  120.     int res;       
  121.         if (!scanf_s("%d", &menu))
  122.         {
  123.             do {
  124.                 res = scanf_s("%d", &menu);
  125.                 while (getchar() != '\n');
  126.                 if (res == 1);
  127.                 else printf("%s", "Ошибка ввода! Вводите числа!\nВвод:");
  128.             } while (res != 1);
  129.         }
  130.    
  131.     switch (menu)
  132.     {
  133.     case 1:
  134.         checkClock();
  135.         mainMenu();
  136.         break;
  137.     case 2:
  138.         drowTable();
  139.         mainMenu();
  140.         break;
  141.     case 3:
  142.         convertSecond();
  143.         mainMenu();
  144.         break;
  145.     case 4:
  146.         mainMenu();
  147.         break;
  148.     case 0:
  149.         cout << "Надеюсь я смог вам помочь\nДосвидания!" << endl;
  150.         exit(EXIT_SUCCESS);
  151.         break;
  152.     default:
  153.         cout << "Ошибка ввода.";
  154.         Sleep(650);
  155.         mainMenu();
  156.         break;
  157.     }
  158. }
  159.  
  160. int main() {
  161.    
  162.     setlocale(LC_ALL, "rus");
  163.  
  164.  
  165.  
  166.     cout << "Здравствуйте, вы запустили консольное приложение по работе со временем.\nНажмите любую клавишу что бы продолжить\n";
  167.     getchar();
  168.  
  169.     mainMenu();
  170.  
  171.     system("pause");
  172.     return 0;
  173. }
  174.  
  175. // Заголовочный файл
  176.  
  177. #pragma once
  178.  
  179. using namespace std;
  180.  
  181. class Time {
  182. private:
  183.     int h, m, s;
  184. public:
  185.     Time(int _h, int _m, int _s) {
  186.  
  187.         h = _h;
  188.         m = _m;
  189.         s = _s;
  190.     }
  191.     Time() {
  192.  
  193.         h = 12;
  194.         m = 0;
  195.         s = 0;
  196.     }
  197.     Time(int _s) {
  198.  
  199.         h = _s / 3600;
  200.         m = (_s / 60) % 60;
  201.         s = _s % 60;
  202.     }
  203.  
  204.     int convert() {  // Time => seconds;
  205.         return h * 3600 + m * 60 + s;
  206.     }
  207.  
  208.     void Set_h(int value_h) { // Преобразование секунд в часы
  209.         h = value_h;
  210.     }
  211.  
  212.     void Set_m(int value_m) { // Преобразование секунд в минуты и часы
  213.         h += value_m / 60;
  214.         m = value_m % 60;
  215.     }
  216.  
  217.     void Set_s(int value_s) { // Преобразование секунд в минуты, часы и секунды
  218.         s = value_s % 60;
  219.         m += (value_s / 60) % 60;
  220.         h += m / 60 + (value_s / 60) / 60;
  221.     }
  222.  
  223.     void print() {              // Вывод времени на экран форматом hh:mm:ss
  224.         cout << h << ":" << m << ":" << s;
  225.     }
  226. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement