如何检查当前是什么月份?Python

6 投票
4 回答
13977 浏览
提问于 2025-04-18 01:25

我正在写一段代码,用来把一些数据分配到不同的季节。我的目标是让程序根据当前的月份来打印出相应的数据。

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'(春天)。

撰写回答