У меня стоит задача написать функцию, которая получает от GPS и возвращает текущее время. В какой структуре или объекте, какого класса из стандартной библиотеки мне хранить это время? Мне нужно, что бы была возможность легко задавать и получать значения секунд, минут, часов и т.п. Т.е. что то типа
time_point time_now = now();
int hour = time_now.hour();
int second = time_now.second();
time_now.second = 0;
Сейчас у меня много где в коде используется std::chrono::time_point, но как, имея конкретный объект получить, например количество часов прошедших от начала суток я не знаю.
Можете воспользоваться стандартной библиотекой C для работы с датой и временем:
std::time_t t = time(nullptr);
std::cout << localtime(&t)->tm_hour;
В C++20 в библиотеку chrono
добавляются функции для работы с датой, временем, временными зонами, новые классы часов и т.д.
подробнее на cppreference
Сейчас Вы можете, например, сконвертировать time_point
в std::time_t
и также использовать функции из стандартной библиотеки C:
using sc = std::chrono::system_clock;
std::time_t t = sc::to_time_t(sc::now());
std::cout << localtime(&t)->tm_hour;
В Boost
имеется библиотека Date_Time
В Qt также имеется класс для работы со временем - QDateTime.
Вам принципиальны "++"?
Если нет, то gettimeofday()
, localtime()
, mktime()
и работы со struct timeval
может быть достаточно.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
возник вопрос, можно ли создать массив или его альтернативу, по типу списка, чтобы как индификатор выступало стринговое значението есть примерно...
Подскажите программу с помощью которой можно русифицировать файлы (dll и
уже все примеры перепробовал, ну никак не получается, у меня есть QT 511