Как я могу заполнить хронографический год текущим годом? - PullRequest
0 голосов
/ 19 сентября 2018

Итак, из этого вопроса я понимаю, что целое число, используемое при построении chrono::year, соответствует Anno Domini origin of 0.

Так что мой вопрос в том, что если бы я хотел получить текущее значение chrono::year.Есть ли функция для этого?Я, очевидно, могу сделать:

const auto time = std::time(nullptr);
const auto current_date = *std::gmtime(&time);
const chrono::year foo{ current_date.tm_year + 1900 };

Но это кажется довольно запутанным процессом.Есть ли что-нибудь лучше для меня?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Вот еще один способ:

auto now = std::chrono::system_clock::now();
std::time_t now_c = std::chrono::system_clock::to_time_t(now);
struct tm *parts = std::localtime(&now_c);
std::cout << 1900 + parts->tm_year  << std::endl;
0 голосов
/ 19 сентября 2018
using namespace std::chrono;
year_month_day ymd = floor<days>(system_clock::now());
const year foo = ymd.year();
...