Учитывая экземпляр x
из datetime.date , (x.month-1)//3
предоставит вам квартал (0 для первого квартала, 1 для второго квартала и т. д.), добавьте 1, если вам нужно подсчитать из 1 вместо: -).
Первоначально два ответа, умноженные и даже первоначально принятые (оба в настоящее время удалены), были ошибочными - не выполняли -1
перед делением и делялись на 4 вместо 3. Поскольку .month
отправляется с 1 по 12, легко проверить, какая формула правильная:
for m in range(1, 13):
print m//4 + 1,
print
дает 1 1 1 2 2 2 2 3 3 3 3 4
- два четырехмесячных квартала и одно-
for m in range(1, 13):
print (m-1)//3 + 1,
print
дает 1 1 1 2 2 2 3 3 3 4 4 4
- теперь вам это не кажется более предпочтительным? -)
Это доказывает, что вопрос вполне оправдан , Я думаю: -).
Я не думаю, что модуль datetime должен обязательно иметь любую возможную полезную функцию, но я знаю, что я поддерживаю (хорошо проверенный ;-) datetools
модуль для использование моих (и других) проектов на работе, у которых много функций для выполнения всех этих календарных вычислений - некоторые из них сложны , некоторые простые, но нет никаких оснований для повторной работы (даже простой работы) или ошибок в таких вычислениях; -).