python中的日期比较 - 如何知道哪个学期日期

时间:2013-09-03 18:02:32

标签: python date datetime python-datetime

我在某种程度上坚持逻辑思维。

我将比较这两个州的日期:

  1. 夏季学期(16.04开课 - 14.10结束)
  2. 冬季学期(15.10开始 - 结束于15.04)
  3. 所有包括假期

    如何检查本月/日的学期?

    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库用于我的问题的日期比较?

2 个答案:

答案 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日之前。如果不是夏天,那就是冬天。当你只有两个间隔时工作得很好 - 如果你还有更多的话,可以打破(凌乱的代码)。