两个date之间的区别?
我用PYTHON编程…
我有两个不同的date…我想知道他们之间的差异(天)。 date的格式是YYYY-MM-DD
用更好的方式解释我自己
我有一个function,可以添加或取消给定的数字,并得到date….例如:
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是date,X是我想要添加的天数…..结果是另一个date….
我需要一个函数,我可以给两个date,结果将是一个int与差异的日子….
我希望有人能帮助! 谢谢
使用-
获取两个datetime
对象之间的差异,并采取days
成员。
from datetime import datetime def days_between(d1, d2): d1 = datetime.strptime(d1, "%Y-%m-%d") d2 = datetime.strptime(d2, "%Y-%m-%d") return abs((d2 - d1).days)
另一个简短的解决
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()
我尝试了上面larsmans发布的代码,但是,有几个问题:
1)这样的代码会抛出mauguerra提到的错误2)如果您将代码更改为以下内容:
... d1 = d1.strftime("%Y-%m-%d") d2 = d2.strftime("%Y-%m-%d") return abs((d2 - d1).days)
这将把你的date时间对象转换为string,但有两件事
1)试图做d2 – d1将失败,因为你不能在string上使用减号运算符和2)如果你读了上面的答案的第一行它说,你想在两个date时间对象上使用 – 运算符,但是,你只是将它们转换为string
我发现,你的字面上只需要以下几点:
import datetime end_date = datetime.datetime.utcnow() start_date = end_date - datetime.timedelta(days=8) difference_in_days = abs((end_date - start_date).days) print difference_in_days
尝试这个:
data=pd.read_csv('C:\Users\Desktop\Data Exploration.csv') data.head(5) first=data['1st Gift'] last=data['Last Gift'] maxi=data['Largest Gift'] l_1=np.mean(first)-3*np.std(first) u_1=np.mean(first)+3*np.std(first) m=np.abs(data['1st Gift']-np.mean(data['1st Gift']))>3*np.std(data['1st Gift']) pd.value_counts(m) l=first[m] data.loc[:,'1st Gift'][m==True]=np.mean(data['1st Gift'])+3*np.std(data['1st Gift']) data['1st Gift'].head() m=np.abs(data['Last Gift']-np.mean(data['Last Gift']))>3*np.std(data['Last Gift']) pd.value_counts(m) l=last[m] data.loc[:,'Last Gift'][m==True]=np.mean(data['Last Gift'])+3*np.std(data['Last Gift']) data['Last Gift'].head()