Crono это парсер дат на естественном языке. Кроме формальных ISO 8601 или dd.MM.yyyy, распознает варианты а-ля «в среду утром», «с 10 до 11 вечера», «2 часа 5 минут назад» и т.п. Поддерживает 8 языков, в том числе, теперь, и русский.

Crono это парсер дат на естественном языке. Кроме формальных ISO 8601 или dd.MM.yyyy, распознает варианты а-ля «в среду утром», «с 10 до 11 вечера», «2 часа 5 минут назад» и т.п. Поддерживает 8 языков, в том числе, теперь, и русский.
Работа со временем как с безразмерной величиной может приводить к недоразумениям и ошибкам конвертации временных единиц измерения:
– Слушай, ты не помнишь, мы в sleep передаем секунды или миллисекунды?
– Блин, оказывается у меня в часе 360 секунд, ноль пропустил.
Для избежания таких ошибок предусмотрена библиотека chrono (namespace std::chrono). Она была добавлена в C++11 и дорабатывалась в поздних стандартах. Теперь все логично:
using namespace std::chrono;
int find_answer_to_the_ultimate_question_of_life()
{
//Поиск ответа
std::this_thread::sleep_for(5s); //5 секунд
return 42;
}
std::future<int> f = std::async(find_answer_to_the_ultimate_question_of_life);
//Ждем максимум 2.5 секунд
if (f.wait_for(2500ms) == std::future_status::ready)
std::cout << "Answer is: " << f.get() << "n";
else
std::cout << "Can't wait anymoren";
Библиотека реализует следующие концепции:
duration
;time_point
;clock
.