Ich habe Daten, die ich im folgenden Format formatiert und in Scheiben geschnitten haben:Python/Überprüfen Sie, ob das Datum in Scheiben ein Delta vom aktuellen Datum ist?
currentTime = datetime.now().strftime("%m-%d-%Y")
die Termine wie diese gibt:
09-20-2017
ich dieses Datum vergleichen wollen, oder besser gesagt die Timedelta einige Zeit zurück zu diesem Tag, lassen sie uns 7 Tage sagen, so wäre es:
09-13-2017
Nun, mein Code sagt der folgende:
Im Idealfall möchte ich aktivieren, wenn die currentTime, von timedelta 7, ein früheres Datum war als die weitereSplit [0:10], die ein anderes Datum ist, das auf die gleiche Weise formatiert wurde, aber von einigen abgeschnitten wurde Textsegment, das das Datum und eine andere Zeichenfolge enthält. Wenn ich furtherSplit drucken waren [00.10], gibt es ein Datum wie folgt aus:
09-18-2017
Wie würde ich dies funktioniert? Ich habe sichergestellt, dass Timedelta importiert wurde, und die einzelnen Daten ausgedruckt, um zu sehen, dass sie funktionieren. Wenn ich currentTime.timedelta (days = 7) tue, wird es jedoch nicht gedruckt.
EDIT
Auf Hilfe/Anfrage von Brad Solomon, hier ist eine aktualisierte Ausgabe:
Also, mit:
from dateutil.relativedelta import relativedelta
...
def compare_dates(date1, date2, **kwargs):
date1 = datetime.datetime.strptime(date1, '%m-%d-%Y')
date2 = datetime.datetime.strptime(date2, '%m-%d-%Y')
td = relativedelta(**kwargs)
return date1 - td < date2
...
if compare_dates(currentTime, furtherSplit[0:10], days=7):
someList.append(x)
print ("get here")
Es ist nie druckt oder fügt die ‚x zu einer Liste. Alles, was benutzt wird, ist gültig. Bitte beraten!
'09-13-2017' ist der String von' foreverSplit [0:10] '. Es kommt von einer Zeile direkt darüber, die 'someContent.split ('\ n ---- \ n') [3]' die ich weiß, gültig ist, weil das Datum, an dem ich diesen Kommentar gestartet habe, unmittelbar danach zu Testzwecken gedruckt wird . Ich werde versuchen, neu zu starten. –