Есть класс часы и статический атрибут часовой пояс. Необходимо перевести все часы. Написал программу но она какая-то тривиальная что-ли. Может кто-нибудь что-нибудь подскажет чтобы ее улучшить.
#include<iostream>
#include<ctime>
#include<Windows.h>
#pragma warning(disable: 4996)
using namespace std;
/* ласс "„асы"*/
class Clock {
time_t rawtime;
struct tm* timeinfo;
public:
static int time_zone; //статический атрибут - часовой по¤с
// онструктор без параметров
Clock()
{
time(&rawtime);
timeinfo = localtime(&rawtime); //получить текущее системное врем¤
}
/*‘ункци¤ вывода времени на экран с учетом часового по¤са*/
void print_time() {
if (this->timeinfo->tm_hour + time_zone > 24)
{
this->timeinfo->tm_hour = (this->timeinfo->tm_hour + time_zone) - 24;
cout << this->timeinfo->tm_hour << ":" << this->timeinfo->tm_min << ":" << this->timeinfo->tm_sec << endl;
}
else {cout << this->timeinfo->tm_hour + time_zone << ":" << this->timeinfo->tm_min << ":" << this->timeinfo->tm_sec << endl; }
}
//статический метод, который измен¤ет значение статического атрибута
static void modifie(int a)
{
time_zone = a;
}
};
int Clock::time_zone = 0; //начальна¤ инициализаци¤ статической переменной
void main()
{
setlocale(LC_ALL, "rus");
Clock a;
Sleep(5000); //временна¤ задержка
Clock b;
cout << "¬рем¤ є1 (" << Clock::time_zone << "- ый час.по¤с) = ";
a.print_time();
cout << "¬рем¤ є2 (" << Clock::time_zone << "- ый час.по¤с) = ";
b.print_time();
Clock::modifie(14);
cout << "¬рем¤ є1 (" << Clock::time_zone << "- ый час.по¤с) = ";
a.print_time();
cout << "¬рем¤ є2 (" << Clock::time_zone << "- ый час.по¤с) = ";
b.print_time();
system("pause");
}
1) использовать локали, т.к. работа с часовыми поясами зависит от региона
2) использовать UTF-8
для вывода строк, т.к. русский язык
Могу посоветовать библиотеку ICU для обеих проблем.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Экран разбит на 3 окна вертикально, и крайнее левое вертикальное окно разбито на 2 окна горизонтально(вверху occur, внизу shell)Как сохранить это...
Начал читать Александреску, и наткнулся на следующий код в начале книги: