我只有month
和year
,我想比较期间(整个月)是否在两个datetime
个对象之间。例如,如果我有这两个日期:
min_post_date = 2013-03-07 00:00:00
max_post_date = 2014-01-01 00:00:00
我只有一年2013
和一个月03
,它应该给我True
,02-2013
应该给False
,04-2014
应该提供False
,当然08-2013
应该提供True
。
你会推荐什么?
感谢。
答案 0 :(得分:2)
您可以先计算一个月的开头和结尾的两个日期:
from calendar import monthrange
from datetime import date, datetime
begin = date(year, month, 1)
end = date(year, month, monthrange(year, month)[1])
然后,您只需检查begin
或end
是否在您的范围内:
(min_post_date <= begin <= max_post_date) or (min_post_date <= end <= max_post_date)
这是假设您使用以下内容解析min_post_date
和max_post_date
min_post_date = datetime.strptime(min_post_date.split()[0], "%Y-%m-%d").date()
,同样适用于max_post_date
。