Как перевести "последнее воскресенье марта" в конкретную дату?
Использую LibreOffice Calc. В таблице встречаются строки типа: "последнее воскресенье сентября" или "первая суббота марта".
Есть ли возможность перевести эти строки в конкретные даты?
Пример: "первая суббота марта" конвертируется в "06.03.21".
Ответы (1 шт):
Это интересная задача, но ее решение - достаточно трудоемкий процесс, поэтому предлагаю разбить ее на части (блоки):
- парсинг строк, чтобы получать следующие кортежи после парсинга (на самом деле эту задачу лучше разбить на еще меньшие блоки и парсить отдельно номер, день недели и месяц в трех "подблоках"):
"первая суббота марта"->(1, 6, 3)"последнее воскресенье сентября"->(-1, 7, 9)
- создать объект типа
datetimeиз компонентов, полученных ранее - воспользоваться решением, подобным этому
PS самым сложным блоком - будет парсинг строк.
PPS пример преобразования имени месяца в разных падежах в его порядковый номер
Дальше все просто - пытаетесь создать отдельно все блоки по отдельности и в конце связать все месте. Если у вас возникнут трудности с каким-то блоком - задавайте новые вопросы здесь. ;)