Язык: C++.ОС: Ubuntu (Linux)Требуется написать программу, которая выводит текущее время в...

0 голосов
75 просмотров

Язык: C++.ОС: Ubuntu (Linux)Требуется написать программу, которая выводит текущее время в десятичном формате в случае, если бы текущее местоположение было на гринвичском меридиане (время, отображающееся на компьютере не обязательно соответствует 0 часовому поясу).Входные данные: отсутствуют.Выходные данные: текущее время в UTC +0 в десятичном формате.


Информатика (3.5k баллов) | 75 просмотров
0

Это уже дичь если честно но написать можно, это очень странный формат, тебя тогда интересует не просто десятичный, а к тому же и дробный.

0

нет, это не time

0

Посмотрел стандарт ISO 8601, юникс тайм - время без UTC смещения, т.е. на двух машинах в разных частях света в одно время time вернёт одно и то же значение

0

unsigned long long int a = time(0); да, присваивает переменной время юникс тайм в секундах UTC 0. Реализовывал через это. Но слишком давно. Тогда изучать язык только начинал и сама программа получилась достаточно большой и не оптимальной. При этом в данной программе выполнялся и другой функционал, так что там вообще ничего не разобрать. Единственное - в переменных hour, min, sec находились корректные и требуемые значения.

0

Привет

0

Ещё раз)_

0

Я написал, смотри, программа считает кол-во секунд с полночи до текущего момента.

0

То есть целочисленное значение

0

Тебе такое надо?

0

Я параллельно тоже с нуля ее сейчас пишу. Нахожусь на этом же этапе выполнения. Требуется число типа double. То есть, например, если время на компьютере UTC +3 - 19:45:00 - в переводе на UTC 0 оно равно 16:45:00. Выводится 16.75.

Дан 1 ответ
0 голосов

В ответе я использовал CTIME библиотеку, если возникают вопросы почему именно её, то по нескольким причинам:

  • Самое высокая скорость работы по сравнению с C++ библиотеками, а её функционал полнойстью покрывает нужды.
  • В данном случаи используются достаточно прозрачные с точки зрения нейминга функции. Код будет хорошо читабилен.

К слову об указателе в функции getSecondsSinceUTCMidnight, не нужно беспокоиться об управлении памятью в данном случаи, за тебя это сделает функционал библиотеки.

Спасибо за отметку лучший ответ.

(172 баллов)