2014-04-04 41 views
1

我正在編寫一個代碼,它將某些數據分配給不同的季節。我希望程序根據當前的月份打印各種數據。如何查看它是哪個月? Python

Autumn = 'September' 
Autumn = 'October' 
Autumn = 'November' 
Autumn = 'December' 
Autumn = 'January' #(The start Jan 01) 
Spring = 'January' #(Jan 02 onwards) 
Spring = 'February' 
Spring = 'March' 
Spring = 'April' #(The start April 04) 
Summer = 'Apirl' #(April 05 onwards) 
Summer = 'May' 
Summer = 'June' 
Summer = 'July' 

回答

3

您可以使用time模塊中的strftime()功能。這會將當前月份存儲在名爲current_month的變量中。

from time import strftime 
current_month = strftime('%B') 

如果你想從這個賽季,試試這個功能:

def get_season(month): 
    seasons = { 
    'Autumn': ['September', 'October', 'November', 'December', 'January'], 
    'Spring': ['January', 'February', 'March', 'April'], 
    'Summer': ['Apirl', 'May', 'June', 'July'] 
    } 

    for season in seasons: 
     if month in seasons[season]: 
      return season 
    return 'Invalid input month' 

目前,這不會解決您指定的日期衝突,因爲任何一天在一月份將返回'Autumn' ,並且在四月的任何一天都會給你'Spring'

4
time.strftime("%b") 

會告訴你當前的月份(縮寫)

time.strftime("%m") 

會給你的數字月份(即1 =月/ 12 =月)

(甚至更好)

datetime.datetime.now().month 

因爲這將得到è您的實際整數而不是字符串(是-警告,雖然一月份爲0)

+2

對於數字月份,我會使用'import datetime; datetime.datetime.now()。month' –

1

您可以使用datetime.datetime.now

>>> from datetime import datetime 
>>> datetime.now().month # As a number 
4 
>>> datetime.now().strftime("%B") # As a name 
'April' 
>>> datetime.now().strftime("%b") # As an abbreviated name 
'Apr' 
>>> 
+0

'.strftime'也是'datetime'對象的一種方法,所以你通常會把它寫成'datetime.now()。strftime('%b')'。 –

+0

@KirkStrauser - 對,我的錯。 – iCodez

-1

絲毫import datetime 可以使用datetime.date.today() 並返回當前日期或日期時間

+0

這並不能真正解決尋找月份的問題。 –

相關問題