我有两个不同的日期,我想知道它们的天数之差。日期格式为“YYYY-MM-DD”。
我有一个函数,可以添加或减去一个给定的数字到日期:
def addonDays(a, x):
ret = time.strftime("%Y-%m-%d",time.localtime(time.mktime(time.strptime(a,"%Y-%m-%d"))+x*3600*24+3600))
return ret
其中A是日期,x是我想添加的天数,结果是另一个日期。
我需要一个函数,其中我可以给出两个日期,结果将是一个int日期差异在天。
另一个简单的解决方案:
from datetime import date
def diff_dates(date1, date2):
return abs(date2-date1).days
def main():
d1 = date(2013,1,1)
d2 = date(2013,9,13)
result1 = diff_dates(d2, d1)
print '{} days between {} and {}'.format(result1, d1, d2)
print ("Happy programmer's day!")
main()
另一个简单的解决方案:
from datetime import date
def diff_dates(date1, date2):
return abs(date2-date1).days
def main():
d1 = date(2013,1,1)
d2 = date(2013,9,13)
result1 = diff_dates(d2, d1)
print '{} days between {} and {}'.format(result1, d1, d2)
print ("Happy programmer's day!")
main()
我尝试了一些代码,但最终使用了一些简单的东西(在Python 3中):
from datetime import datetime
df['difference_in_datetime'] = abs(df['end_datetime'] - df['start_datetime'])
如果你的start_datetime和end_datetime列是datetime64[ns]格式,datetime会理解它,并返回天数+时间戳的差值,时间戳是timedelta64[ns]格式。
如果你只想看到以天为单位的差异,你可以通过使用(也适用于时间部分)只分离start_datetime和end_datetime的日期部分:
df['start_date'] = df['start_datetime'].dt.date
df['end_date'] = df['end_datetime'].dt.date
然后运行:
df['difference_in_days'] = abs(df['end_date'] - df['start_date'])