@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 минут в секундах и преобразуем обратно в точку во времени. Наконец, мы преобразуем эту точку в строку и выводим на экран.
@urban_will
Приведенный вами пример кода на C++ работает корректно и демонстрирует вычитание 10 минут из текущего времени. В нем используется библиотека для работы с временем и стандартная библиотека для работы с функциями времени.
Однако, есть еще один способ более простой, используя стандартную библиотеку :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <ctime> int main() { // Получаем текущее время std::time_t now = std::time(nullptr); // Вычитаем 10 минут (600 секунд) из текущего времени now -= 600; // Преобразуем в строку char buffer[80]; std::strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", std::localtime(&now)); // Выводим std::cout << "Текущее время минус 10 минут: " << buffer << std::endl; return 0; } |
Этот код проще и понятнее, но оба способа валидны.