2017-10-08 63 views
0

我想查看給定月份的日期。例如,如果我輸入的是2017年和2月或2月,我希望收到該月份的所有日期,本例中爲01-28.02.2017。如何查看基於Python和年月的日期

是否可以在Python中完成?試圖找到使用谷歌的東西,但沒有成功。

由於提前,

+0

[獲取在Python中每月的最後一天(https://stackoverflow.com/questions/42950/get-last-day-of-the-month-in-python) – Mark

+0

我的可能的複製我不是在尋找月份的最後一天但是所有的日子 –

+2

每個月都從第1天開始。如果你知道第一天和最後一天,那麼你也知道它們之間的一切。 – Mark

回答

3

有一個在標準庫這樣的功能:itermonthdates()

from calendar import Calendar 

for date in Calendar().itermonthdates(2017, 2): 
    print(date) 

您可能需要if date.month == 2過濾的日期,因爲它將包含從以前的和未來數月天,如果他們屬於同一個星期。

+0

這是否考慮了閏年? – mikey

+0

@mikey是的,它的確如此。 –

+0

so'for date in(d for d in Calendar()。itermonthdates(2017,2)if d.month == 2)' –

1

另外,正如Mark在評論中所建議的,如果你知道這個月,那麼你可以自己做。

import calendar 

year, month = 2017, 2 

def days_in_month(date): 
    if calendar.isleap(date.year) and date.month == 2: 
     return 29 
    else: 
     return [None, 31, 28, 31, 30, 31, 30, ...][date.month] 

date = datetime.date(year=year, month=month) 

dates = [datetime.date(year=year, month=month, day=d) for d in range(1, days_in_month(date)+1)] 
相關問題