Задачи
August 8, 2022
Задача. Конвертация даты
Дата задана в виде строки в формате День Месяц Год, где:
- День находится в наборе {"1st", "2nd", "3rd", "4th", ..., "30th", "31st"}.
- Месяц указан в наборе {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}.
- Год находится в диапазоне [1900, 2100].
Необходимо преобразовать строку даты в формат YYYY-MM-DD, где:
- date = "18th Aug 2021"
Output: "2021-08-18" - date = "14th Apr 1990"
Output: "1990-04-14" - date = "3rd Sep 1994"
Output: "1994-09-03"
Разбор
- Заведем константный массив строк, где будем хранить аббревиатуры месяцев.
- Исходную строку разделим на сегменты, которые разделены пробелами.
- Далее пройдемся по этим сегментам и проверим каждый из этих сегментов.
- Если сегмент содержится в массиве месяцев, то преобразуем его в числовое значение.
- Если сегмент содержит буквынный суффикс, значит это значения дня, также конвертируем его в числовое значение.
- Остается год, если мы не попали в первые два условия. Записываем его как есть.
- Выводим результат.
Детали реализации смотрите ниже.