Я только что узнал, что второй прыжок будет добавлено в конце этого месяца (июнь 2015 г.). Я немного боюсь этого, потому что я провожу свой собственный урок времени. Я не уверен, что это достаточно надежно.
Я создал класс Instant
работая с unsigned long long int
переменная-член ms
это количество миллисекунд от 01/01/1600
в 0:00:00
,
Когда я хочу узнать текущее время, я вызываю эту функцию:
void Instant::setCurrentTime()
{
struct timeval tv;
gettimeofday(&tv, NULL);
this->ms = NBR_DAYS_TO_EPOCH; // 135140
this->ms *= NBR_SECONDS_IN_DAY; // 86400
this->ms += tv.tv_sec;
this->ms *= NBR_MILLISECONDS_IN_SECOND; // 1000
this->ms += tv.tv_usec/1000;
}
Мой первый вопрос: Как високосные секунды влияют на это число? Это уже учтено в tv.tv_sec
значение ? Как ?
Мой второй вопрос о преобразовании в читабельный формат. Я не публикую его здесь, потому что моя функция довольно большая (я могу опубликовать ее, если потребуется), но идея заключается в следующем:
На данный момент мой класс не может сказать «мы 30/06/2015
в 23:59:60
«потому что мое количество секунд ограничено 59
, Но также потому, что я не знаю, как справиться с этим. что может быть хорошим способом?
Задача ещё не решена.