2017-10-04 1 views
0

j'ai une liste comme ci-dessousVérifiez si les dates d'une liste sont plus de 2 jours

list = ['9/27/17', '9/26/17', '9/22/17'] 

Et je voudrais savoir combien de dates sont plus de 2 jours et combien de plus de 5 jours (à partir d'aujourd'hui - date actuelle). Quel est le meilleur moyen d'y parvenir? Notez que parfois la liste a plus de dates, pas seulement 3 comme l'exemple. Merci d'avance pour vos contributions/conseils. Regrds.

+0

Plus de 2 jours .. _what_? L'un et l'autre? À partir d'aujourd'hui? – Lafexlos

+0

Une idée serait d'inclure [date objects] (https://docs.python.org/3/library/datetime.html#date-objects) dans la liste et de calculer les différences basées sur [objets timedelta] (https: //docs.python.org/3/library/datetime.html#timedelta-objects) – raratiru

+0

Plus de 2 jours à compter de la date actuelle (aujourd'hui). – Gonzalo

Répondre

2

vous pouvez essayer ce code ci-dessous

from datetime import datetime 

def c(t): 
    ttime = datetime.strptime(t, '%m/%d/%y') 
    return ((datetime.now() - ttime).days) 

timelist = ['9/27/17', '9/26/17', '9/22/17', '10/3/17'] 
timelist = [c(t) for t in timelist] 
print(timelist) 

il retournera [7, 8, 12, 1] alors vous pouvez le faire catégoriser simplement comme vos besoins

vous pouvez essentiellement analyser quoi que ce soit en utilisant strptime, docs: https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

+0

génial! travaillera sur votre suggestion. Générer une liste m'aidera sur les prochaines étapes. Merci pour le soutien. – Gonzalo

1

Cela fonctionne et donne la flexibilité de changer votre plage de dates limite

from datetime import datetime, timedelta, date 

    #make a 2 day limit 
    datelimit = datetime.today() - timedelta(days=2) 

    yourlist = ['9/27/17', '9/26/17', '9/22/17'] 

    for i in yourlist: 
     j = datetime.strptime(i, "%m/%d/%y") 
     if j < datelimit: 
      print (j.strftime('%d/%m/%Y')) 

enter image description here