2016-08-26 2 views
0

Я пытаюсь получить количество недель в любом месяце. например:количество недель в этом месяце python

for this month August 2016, the days of the month streches over 5 weeks. while for October 2016 the number of weeks are 6.

Есть ли элегантный способ узнать этот номер? пробовал использовать календарь и дату-время, но я не мог найти ничего, что могло бы помочь мне решить мою проблему.

P.S Я использую Python 2.6

Спасибо заранее!

+0

Возможный дубликат [Python: Номер недели в месяц] (http://stackoverflow.com/questions/7029261/python-number-of- неделю-в-месяц). Возьмите этот ответ, примените его к последнему дню месяца, и есть ваше решение. – Prune

ответ

4

Вот Quicky:

>>> import calendar 
>>> print calendar.month(2016,10) 
    October 2016 
Mo Tu We Th Fr Sa Su 
       1 2 
3 4 5 6 7 8 9 
10 11 12 13 14 15 16 
17 18 19 20 21 22 23 
24 25 26 27 28 29 30 
31 

Количество строк :)

len(calendar.month(2016,10).split('\n')) - 3 

редактировать: ответ Joshua Клейна в комментариях к этому ответу путь более элегантна:

len(calendar.monthcalendar(2015,9)) 
+3

В качестве альтернативы, 'calendar.month (2016,10) .count ('\ n') - 2' –

+0

Это лучше! –

+3

еще лучше 'len (calendar.monthcalendar (2015,9))' –

1

Первое, что приходит на ум: получить номер недели в первый день месяца, а номер недели последний день месяца. Количество недель, отведенных на месяц, - это разница чисел недели.

Чтобы получить номер недели для даты: How to get week number in Python?

Смежные вопросы