Ни mxDateTime, ни Datejs, ни веб-сервис не поддерживают "последний четверг месяца". ОП хочет знать все последние четверги месяца, скажем, за полный год.
mxDateTime поддерживает операции, но вопрос должен быть задан в коде Python, а не в виде строки.
Лучшее, что я могу понять, это parsedatetime , но это не поддерживает «последний четверг месяца». Поддерживает:
>>> c.parseDateText("last thursday of april 2001")
(2001, 4, 20, 13, 55, 58, 3, 64, 0)
>>> c.parseDateText("last thursday of may 2001")
(2001, 5, 20, 13, 56, 3, 3, 64, 0)
>>> c.parseDateText("last thursday of may 2010")
(2010, 5, 20, 13, 56, 7, 3, 64, 0)
>>>
(Обратите внимание, что ни DateJS, ни этот веб-сервис не поддерживают этот синтаксис.)
РЕДАКТИРОВАТЬ : Хм, хорошо, но хотя год и месяц верны, день не так. Последний четверг апреля 2001 года был 27-го. Я думаю, что вам придется выложить здесь свое собственное решение.
Не поддерживает:
>>> c.parseDateText("last thursday of 2010")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "parsedatetime/parsedatetime.py", line 411, in parseDateText
mth = self.ptc.MonthOffsets[mth]
KeyError
>>>
Так что одной из возможностей является подстановка текста: нормализуйте строку в нижний регистр, одиночные пробелы и т. Д., А затем выполните подстановку строки «месяц» для каждого интересующего вас месяца. Вероятно, вам придется настроить любой Решение, которое вы найдете. Например, в каком-то старом коде Скипа Монтанаро , который он написал для онлайн-системы каландрирования музыки:
# someone keeps submitting dates with september spelled wrong...
'septmber':9,
Или вы пишете свой собственный синтаксический анализатор поверх mxDateTime, используя все приведенные выше ссылки в качестве ссылок.