Вычисление дробного дня года в C++14 ⇐ C++
-
Anonymous
Вычисление дробного дня года в C++14
Я написал следующий код, используя библиотеку date.h Говарда Хиннанта, для вычисления дробного дня года текущего времени. Мне было интересно, есть ли более короткие способы сделать это, потому что мой код кажется излишним вызовов std::chrono и date. Могу ли я напрямую вычислить количество дробных дней с начала года (с точностью до микросекунды) и избежать двухэтапного подхода?
#include #include #include "date.h" интервал основной() { // Получаем фактическое время. auto now = std::chrono::system_lock::now(); // Получаем количество дней с начала года. auto ymd = date::year_month_day( date::floor(сейчас)); auto ymd_ref = date::year{ymd.year()}/1/1; int дней = (date::sys_days{ymd} - date::sys_days{ymd_ref}).count(); // Получаем дробное количество секунд дня. auto microсекунды = std::chrono::duration_cast(сейчас - date::floor(сейчас)); двойные секунды_синце_полуночи = 1e-6*микросекунды.счет(); // Получить дробный номер дня. std::cout
Я написал следующий код, используя библиотеку date.h Говарда Хиннанта, для вычисления дробного дня года текущего времени. Мне было интересно, есть ли более короткие способы сделать это, потому что мой код кажется излишним вызовов std::chrono и date. Могу ли я напрямую вычислить количество дробных дней с начала года (с точностью до микросекунды) и избежать двухэтапного подхода?
#include #include #include "date.h" интервал основной() { // Получаем фактическое время. auto now = std::chrono::system_lock::now(); // Получаем количество дней с начала года. auto ymd = date::year_month_day( date::floor(сейчас)); auto ymd_ref = date::year{ymd.year()}/1/1; int дней = (date::sys_days{ymd} - date::sys_days{ymd_ref}).count(); // Получаем дробное количество секунд дня. auto microсекунды = std::chrono::duration_cast(сейчас - date::floor(сейчас)); двойные секунды_синце_полуночи = 1e-6*микросекунды.счет(); // Получить дробный номер дня. std::cout
Мобильная версия