Time and Numeric Utilities
Duration Casting
std::chrono duration types make unit conversion explicit.
Duration Casting
duration_casting.cpp
#include <chrono>
#include <iostream>
int main() {
int seconds = ;
std::chrono::seconds total(seconds);
auto minutes = std::chrono::duration_cast<std::chrono::minutes>(total);
int leftover = static_cast<int>((total - minutes).count());
std::cout << "seconds=" << seconds << std::endl;
std::cout << "minutes=" << minutes.count() << std::endl;
std::cout << "leftover=" << leftover << std::endl;
return 0;
}
#include <chrono>
#include <iostream>
int main() {
int seconds = ;
std::chrono::seconds total(seconds);
auto minutes = std::chrono::duration_cast<std::chrono::minutes>(total);
int leftover = static_cast<int>((total - minutes).count());
std::cout << "seconds=" << seconds << std::endl;
std::cout << "minutes=" << minutes.count() << std::endl;
std::cout << "leftover=" << leftover << std::endl;
return 0;
}
#include <chrono>
#include <iostream>
int main() {
int seconds = ;
std::chrono::seconds total(seconds);
auto minutes = std::chrono::duration_cast<std::chrono::minutes>(total);
int leftover = static_cast<int>((total - minutes).count());
std::cout << "seconds=" << seconds << std::endl;
std::cout << "minutes=" << minutes.count() << std::endl;
std::cout << "leftover=" << leftover << std::endl;
return 0;
}
duration
A duration stores an amount of time together with its unit.
duration_cast
`duration_cast` converts a duration to another unit when the conversion may lose detail.