Контест Middle Современный C++20/23 обновлено
Даты на std::chrono: день недели и интервалы
Условие
Дан список дат в формате YYYY-MM-DD. Для каждой даты выведите:
invalid, если такой даты не существует (например,2023-02-29или месяц13);- иначе день недели (
Mon,Tue,Wed,Thu,Fri,Sat,Sun) и через пробел число дней от предыдущей корректной даты списка до этой (может быть отрицательным); для первой корректной даты вместо числа выведите-.
Ввод: q (1 ≤ q ≤ 2000), затем q строк с датами (год от 1900 до 2100, месяц и день из двух цифр от 00 до 99).
Вывод: q строк.
Используйте календарь C++20 из <chrono>: std::chrono::year_month_day, sys_days, weekday.
Пример 1
Ввод:
3
2024-02-29
2023-02-29
2024-03-01
Вывод:
Thu -
invalid
Fri 1
Пример 2
Ввод:
2
1900-02-29
2000-02-29
Вывод:
invalid
Tue -
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.