Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpTmFl 328 of 696 menu
◀ ▶

Округление длительности вниз в C++

Обрезка длительности к более ранней минуте, а не к нулю, делает floor из <chrono>.

На отрицательном интервале это заметнее, чем при усечении через duration_cast. Запишем секунды, получим минуты обоими способами и выведем оба счетчика:

#include <chrono> #include <iostream> std::chrono::seconds span{-90}; auto by_cast = std::chrono::duration_cast<std::chrono::minutes>(span); auto by_floor = std::chrono::floor<std::chrono::minutes>(span); std::cout << by_cast.count() << "\n"; std::cout << by_floor.count() << "\n";

Первая строка показывает усечение к нулю (-1 минута), вторая - округление вниз до целых минут (-2 минуты) для тех же 90 секунд.

Объявите std::chrono::seconds left равным -200. Выведите счетчик std::chrono::floor<std::chrono::minutes> от left.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить