Как грамотно вычесть несколько минут из текущего времени в с++?

Пользователь

от urban_will , в категории: C/C++ , 8 месяцев назад

Как грамотно вычесть несколько минут из текущего времени в с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jose , 8 месяцев назад

@urban_will 

Вот пример кода на C++, который вычитает 10 минут из текущего времени:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include 
#include 
#include 

int main() {
    // Получаем текущее время
    auto now = std::chrono::system_clock::now();

    // Преобразуем в секунды с 1 января 1970 года
    auto now_sec = std::chrono::time_point_cast(now).time_since_epoch().count();

    // Вычитаем 10 минут (в секундах)
    auto ten_min_ago_sec = now_sec - 10 * 60;

    // Преобразуем обратно в точку во времени
    auto ten_min_ago = std::chrono::time_point(std::chrono::seconds(ten_min_ago_sec));

    // Преобразуем в строку
    std::time_t ten_min_ago_time_t = std::chrono::system_clock::to_time_t(ten_min_ago);
    char ten_min_ago_buffer[80];
    std::strftime(ten_min_ago_buffer, 80, "%Y-%m-%d %H:%M:%S", std::localtime(&ten_min_ago_time_t));

    // Выводим
    std::cout << "Текущее время: " << ten_min_ago_buffer << '
';

    return 0;
}


В данном примере мы используем библиотеку <chrono>, чтобы работать с временем. Сначала мы получаем текущее время, затем преобразуем его в секунды от начала эпохи (1 января 1970 года). Затем мы вычитаем 10 минут в секундах и преобразуем обратно в точку во времени. Наконец, мы преобразуем эту точку в строку и выводим на экран.