我在某种程度上坚持逻辑思维。
我将比较这两个州的日期:
所有包括假期
如何检查本月/日的学期?
current_month = datetime.datetime.now().month
current_year = datetime.datetime.now().year
current_day = datetime.datetime.now().day
if current_month>=10 and current_day>=15:
#winter semester
但我在某种程度上做得太乱了。是否有任何python库用于我的问题的日期比较?
答案 0 :(得分:9)
您可以生成夏令时:
current = datetime.date.today()
summer = current.replace(month=4, day=16), current.replace(month=10, day=14)
if summer[0] <= current <= summer[1]:
# summer semester
else:
# winter semester
这使用datetime.date()
对象而不是datetime.datetime()
,因为时间部分与此无关。 date.replace()
来电确保我们重复使用当前年份。
当然,这一切都假设夏季学期在每年的相同日期开始和结束。
演示:
>>> import datetime
>>> current = datetime.date.today()
>>> current
datetime.date(2013, 9, 3)
>>> summer = current.replace(month=4, day=16), current.replace(month=10, day=14)
>>> summer[0] <= current <= summer[1]:
True
答案 1 :(得分:3)
一种方法是创建一个查找表(当你有许多脱节的时间间隔时,这通常是一个好主意,但每个都是一个离散的大小,就像一天)。
另一个是测试它是否是夏天 - 在4月16日之后和10月15日之前。如果不是夏天,那就是冬天。当你只有两个间隔时工作得很好 - 如果你还有更多的话,可以打破(凌乱的代码)。