当前位置: 首页 > 面试题库 >

如何在Python中检测日期是否连续?

夏嘉德
2023-03-14
问题内容

我有一个带有“日期”字段的访问表。每个记录都有随机日期。我构建了一个脚本,将所有记录追加到列表中,然后将列表设置为仅过滤出唯一值:

dateList = []
# cursor search through each record and append all records in the date 
# field to a python list
for row in rows:
   dateList.append(row.getValue("DATE_OBSERVATION").strftime('%m-%d-%Y'))

# Filter unique values to a set
newList = list(set(dateList))

返回(在我的测试表上):

[‘07 -06-2010’,‘06-24-2010’,‘07-05-2010’,‘06-25-2010’]

现在,我具有“ DATE_OBSERVATION”字段的唯一值,我想检测是否:

  • 日期是单个的(即,仅返回一个唯一的日期,因为这是每条记录中的日期)
  • 如果日期是日期范围(即所有日期都属于连续范围)
  • 如果日期是多个日期,但不在连续日期范围内

我们欢迎所有的建议!麦克风


问题答案:

不用滚动自己的consecutive函数,您可以简单地使用.toordinal()datetime对象的方法将日期对象转换为整数。序数日期集的最大值和最小值之差比该长度的长度大一个:

from datetime import datetime

date_strs = ['07-06-2010', '06-24-2010', '07-05-2010', '06-25-2010']
# date_strs = ['02-29-2012', '02-28-2012', '03-01-2012']
# date_strs = ['01-01-2000']
dates = [datetime.strptime(d, "%m-%d-%Y") for d in date_strs]

date_ints = set([d.toordinal() for d in dates])

if len(date_ints) == 1:
    print "unique"
elif max(date_ints) - min(date_ints) == len(date_ints) - 1:
    print "consecutive"
else:
    print "not consecutive"


 类似资料:
  • 问题内容: 我正在构建一种日历Web应用程序 我已经在HTML中设置了以下表格 然后,来自用户的输入将被提交到小服务器中 我想知道,有没有办法检查用户输入的日期是否是有效日期? 显然,我可以编写很多if语句,但是是否有任何内置函数可以检查这一点? 谢谢 问题答案: 你可以尝试做 这将消除诸如> 12,小时> 23,不存在的leap日等问题(在不month年,month = 2的最大值为28,否则为

  • 问题内容: 我正在使用Java应用程序,该应用程序会在用户在命令行中输入的持续时间内生成报告。用户需要以以下格式输入日期:dd-MM-yyyy 例: java报告2013年1月1日至2013年3月31日 在代码中,我将日期保存在两个字符串中。我必须确保用户输入的开始日期应该早于结束日期。是否有内置函数可以通过将这两个字符串传递给它来帮助我实现这一目标? 问题答案: 您可以使用Date.before

  • 问题内容: 如果我有一个事件的日期,例如2011-01-03,那么如何在Java中确定它是否在本周或下周?任何示例代码? 编辑: 我以为这是一个简单的问题,结果比我想象的要复杂得多,本周我要讲的是:从过去的太阳到星期六,下周是从下一个太阳到星期六。 问题答案: 这部分取决于您所说的“本周”和“下周”的意思…但是使用Joda Time可以很容易地确定它是在“今天”还是“接下来的7天”: 编辑:要获取

  • 如果我有: 例句:如果我想从21/04/2014开始在酒店预订房间,那应该是不可能的,因为今天是28/07/2014。 我如何在JavaFX中做到这一点?

  • 问题内容: 如果有和,如何检查用户给出的日期是否在该范围内? 例如 目前日期是字符串,将它们转换为时间戳整数是否有帮助? 问题答案: 使用strtotime将它们转换为时间戳是正确的方法,例如

  • 问题内容: 即使是同一天,此条件也总是计算为,因为它正在比较时间。 如何检查日期是否与同一天? 问题答案: 如果您只想比较日期, 或者,显然 如果要检查它们是 同一 日期。 该文档通常很有帮助。通常,它也是的第一个Google搜索结果。除非您的问题与名为“ snake”的功能/模块有关。 基本上,模块具有三种存储时间点的类型: 年,月,日 时,分,秒,微秒,时区信息 结合日期和时间。它具有方法和获

  • 问题内容: 如何检查字符串是否包含以下格式的日期: 2012年1月15日,星期日,美国东部标准时间晚上7:36 我正在使用的数据包含大量字符串。但是我要查找的字符串类型包含一个2或3个单词名称和一个日期。我正在检查日期以识别这些类型的字符串。 我已经找到了这种日期的simpleDateFormat。 但是我不知道如何进一步进行。 我猜测正则表达式可能有效,但是当月/日名称的长度不同时,我不知道如何