C++ Как посчитать часы до определённой даты?

Начинающий
Статус
Оффлайн
Регистрация
16 Сен 2022
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Дата формата 00.00.0000 00:00:00 как узнать оставшейся кол-во часов до наступления даты
 
money++
Разработчик
Статус
Оффлайн
Регистрация
14 Июн 2018
Сообщения
638
Реакции[?]
339
Поинты[?]
22K
C++:
#include <chrono>
#include <ctime>
#include <iostream>
#include <iomanip>
#include <sstream>

int main()
{
    std::tm tm{};  // Структурка в которую положим дату
    // Поток данных состоящих из даты, до которой хотим узнать количество часов
    std::stringstream date_stream("11.09.2077 12:34:56");
    date_stream >> std::get_time(&tm, "%d.%m.%Y %H:%M:%S");  // Парсим дату в структурку
    auto date_unix_time = std::mktime(&tm);  // Структурку в unix_time
    // unix_time в chrono::time_point
    auto date_time_point = std::chrono::system_clock::from_time_t(date_unix_time);
    // Получаем текущую дату
    auto cur_time_point = std::chrono::system_clock::now();
    // Находим разницу в часах
    std::cout << std::chrono::duration_cast<std::chrono::hours>(date_time_point - cur_time_point).count();
    return 0;
}
 
Сверху Снизу