擅长:python、mysql、java
<p>与其滚动自己的<code>consecutive</code>函数,不如使用datetime对象的<code>.toordinal()</code>方法将日期对象转换为整数。序数日期集的最大值和最小值之间的差大于该集的长度一:</p>
<pre><code>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"
</code></pre>