Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <locale>
- #include <time.h>
- #include <string.h>
- #include <malloc.h>
- #include <windows.h>
- #include <conio.h>
- #include "Time.h"
- using namespace std;
- // Сеттер и реализация функции посмотреть на часы
- char* settime(struct tm* u)
- {
- char s[60];
- char* tmp;
- for (int i = 0; i < 60; i++) { s[i] = 0; }
- int length = strftime(s, 60,"\nВремя: %H:%M:%S\nДата - %d.%m.%Y, %A",u);
- tmp = (char*)malloc(sizeof(s));
- strcpy(tmp, s);
- return(tmp);
- } //Задаём время
- void checkClock() {
- struct tm* u;
- char* f;
- char point[3] = { '.','.','.' };
- while (!_kbhit()) {
- system("cls");
- const time_t timer = time(NULL);
- u = localtime(&timer);
- f = settime(u);
- printf("В данный момент ", timer);
- puts(f);
- cout << "Ожидание символа";
- for (int i = 0; i < 3; i++) {
- cout << point[i];
- Sleep(333);
- }
- }
- }
- // Часовые пояса
- void timeZone(int UTC) {
- int sysH, sysM, sysS;
- class Time T;
- time_t t = time(NULL);
- tm* timeinfo = localtime(&t);
- tm ti = *timeinfo;
- sysH = ti.tm_hour;
- sysM = ti.tm_min;
- sysS = ti.tm_sec;
- if (sysH + UTC > 23) {
- int tmp;
- tmp = (sysH + UTC) - 24;
- cout << tmp << ":" << sysM << ":" << sysS;
- }
- else { cout << sysH + UTC << ":" << sysM << ":" << sysS; };
- }
- void drowTable() {
- char point[3] = { '.','.','.' };
- while (!_kbhit()) {
- system("cls");
- cout << "\t№" << "\tГород " << "\tЧисленность \tВремя \tЧасовой Пояс" << endl;
- cout << "\t1" << "\tКалининград " << "\tНаселение 500 тыс.\tВремя: "; timeZone(-1); cout << "\t (UTC + 2)" << endl;
- cout << "\t2" << "\tМосква " << "\tНаселение 13 млн.\tВремя: "; timeZone(0); cout << "\t (UTC + 3)" << endl;
- cout << "\t3" << "\tНижний новгород" << "\tНаселение >1 млн.\tВремя: "; timeZone(0); cout << "\t (UTC + 3)" << endl;
- cout << "\t4" << "\tВолгоград " << "\tНаселение >1 млн.\tВремя: "; timeZone(1); cout << "\t (UTC + 4)" << endl;
- cout << "\t5" << "\tЕкатеринбург " << "\tНаселение >1 млн.\tВремя: "; timeZone(2); cout << "\t (UTC + 5)" << endl;
- cout << "\t6" << "\tОмск " << "\tНаселение >1 млн.\tВремя: "; timeZone(3); cout << "\t (UTC + 6)" << endl;
- cout << "\t7" << "\tНовосибирск " << "\tНаселение >1 млн.\tВремя: "; timeZone(4); cout << "\t (UTC + 7)" << endl;
- cout << "\t8" << "\tУлан-Удэ " << "\tНаселение >1 млн.\tВремя: "; timeZone(5); cout << "\t (UTC + 8)" << endl;
- cout << "\t9" << "\tЯкутск " << "\tНаселение >1 млн.\tВремя: "; timeZone(6); cout << "\t (UTC + 9)" << endl;
- cout << "\t10"<< "\tВладивосток " << "\tНаселение >1 млн.\tВремя: "; timeZone(7); cout << "\t (UTC + 10)" << endl;
- cout << "\nОжидание ввода символа для продолжения";
- Sleep(1001);
- /*for (int i = 0; i < 3; i++) {
- cout << point[i];
- Sleep(333);
- }
- */
- }
- }
- void convertSecond() {
- system("cls");
- int sec = 0;
- cout << "Введите секунды для перевода ";
- cin >> sec;
- Time t3(sec);
- system("cls");
- cout << sec << " секунд = ";
- t3.print();
- getchar(); getchar();
- }
- void mainMenu() {
- system("cls");
- cout << " Меню:" << endl;
- Sleep(70);
- cout << "_________________________________________" << endl;
- Sleep(70);
- cout << "| 1 - Посмотреть на часы |" << endl;
- Sleep(70);
- cout << "| 2 - Время в городах Росии |" << endl;
- Sleep(70);
- cout << "| 3 - Перевод секунд в минуты и часы |" << endl;
- Sleep(70);
- cout << "| 4 - Узнать нужное время до встречи |" << endl;
- Sleep(70);
- cout << "| - - - - - - - - - - - - - - - - - - - |" << endl;
- Sleep(70);
- cout << "| 0 - Выход из программы |" << endl;
- Sleep(70);
- cout << "|_______________________________________|" << endl;
- cout << "Ввод: ";
- int menu;
- int res;
- if (!scanf_s("%d", &menu))
- {
- do {
- res = scanf_s("%d", &menu);
- while (getchar() != '\n');
- if (res == 1);
- else printf("%s", "Ошибка ввода! Вводите числа!\nВвод:");
- } while (res != 1);
- }
- switch (menu)
- {
- case 1:
- checkClock();
- mainMenu();
- break;
- case 2:
- drowTable();
- mainMenu();
- break;
- case 3:
- convertSecond();
- mainMenu();
- break;
- case 4:
- mainMenu();
- break;
- case 0:
- cout << "Надеюсь я смог вам помочь\nДосвидания!" << endl;
- exit(EXIT_SUCCESS);
- break;
- default:
- cout << "Ошибка ввода.";
- Sleep(650);
- mainMenu();
- break;
- }
- }
- int main() {
- setlocale(LC_ALL, "rus");
- cout << "Здравствуйте, вы запустили консольное приложение по работе со временем.\nНажмите любую клавишу что бы продолжить\n";
- getchar();
- mainMenu();
- system("pause");
- return 0;
- }
- // Заголовочный файл
- #pragma once
- using namespace std;
- class Time {
- private:
- int h, m, s;
- public:
- Time(int _h, int _m, int _s) {
- h = _h;
- m = _m;
- s = _s;
- }
- Time() {
- h = 12;
- m = 0;
- s = 0;
- }
- Time(int _s) {
- h = _s / 3600;
- m = (_s / 60) % 60;
- s = _s % 60;
- }
- int convert() { // Time => seconds;
- return h * 3600 + m * 60 + s;
- }
- void Set_h(int value_h) { // Преобразование секунд в часы
- h = value_h;
- }
- void Set_m(int value_m) { // Преобразование секунд в минуты и часы
- h += value_m / 60;
- m = value_m % 60;
- }
- void Set_s(int value_s) { // Преобразование секунд в минуты, часы и секунды
- s = value_s % 60;
- m += (value_s / 60) % 60;
- h += m / 60 + (value_s / 60) / 60;
- }
- void print() { // Вывод времени на экран форматом hh:mm:ss
- cout << h << ":" << m << ":" << s;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement