J'ai deux dates différentes et je veux connaître la différence de jours entre elles. Le format de la date est AAAA-MM-JJ.
J'ai une fonction qui peut ajouter ou soustraire un nombre donné à une 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
où A est la date et x le nombre de jours que je veux ajouter. Et le résultat est une autre date.
J'ai besoin d'une fonction où je peux donner deux dates et le résultat serait une différence de date en jours.
Utilisez -
pour obtenir la différence entre deux objets datetime
et prenez le membre 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)
Une autre solution courte:
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()
J'ai essayé le code posté par larsmans ci-dessus, mais il y a quelques problèmes:
1) Le code tel quel jettera l’erreur mentionnée par mauguerra 2) Si vous modifiez le code comme suit:
...
d1 = d1.strftime("%Y-%m-%d")
d2 = d2.strftime("%Y-%m-%d")
return abs((d2 - d1).days)
Cela convertira vos objets datetime en chaînes, mais deux choses
1) Essayer de faire d2 - d1 échouera car vous ne pouvez pas utiliser l’opérateur moins sur les chaînes et 2) Si vous lisez la première ligne de la réponse ci-dessus indiquée, vous voulez utiliser l’opérateur - sur deux objets datetime , vous venez de les convertir en chaînes
Ce que j’ai trouvé, c’est que vous n’avez littéralement besoin que de ce qui suit:
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
Essaye ça:
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()