如何检查当前是什么月份?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 = 'April' #(April 05 onwards)
Summer = 'May'
Summer = 'June'
Summer = 'July'
4 个回答
-1
通过使用 import datetime
这行代码,你可以调用 datetime.date.today()
,这样就能得到今天的日期或者时间。
5
你可以使用 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'
>>>
7
time.strftime("%b")
这个会告诉你当前的月份(缩写形式)
time.strftime("%m")
这个会给你数字形式的月份(比如1代表一月,12代表十二月)
(或者更好的是)
datetime.datetime.now().month
因为这个会给你一个实际的整数,而不是字符串(不过要注意,1月是0)
9
你可以使用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': ['April', 'May', 'June', 'July']
}
for season in seasons:
if month in seasons[season]:
return season
return 'Invalid input month'
不过,目前这个方法不能解决你提到的日期冲突,因为一月的任何一天都会返回'Autumn'
(秋天),而四月的任何一天都会返回'Spring'
(春天)。