Hallo an alle.
Ich bringe mir Python selber bei und stoße aber immer wieder auf Probleme.
Ich möchte euch Fragen ob ihr mir mal auf die Sprünge helfen könnt.
Ich weiß wie ich das Datum und die Uhrzeit einlese.
Ich möchte nun erreichen das, dass aktuelle Datum wenn ich ein Programm starte
gespeichert wird und bei jedem nächten Start des Programms, ausgerchnet wird
wieviel Tage, Stunden, Minuten und Sekunden vergangen sind.
Könnt ihr mir bitte helfen.
Vielen dank schon mal im voraus
Datum und Zeit Berechnung
Wenn Dir Datum und Uhrzeit bekannt sind, dann speicherst Du diese. Beispielsweise in einer Datei. Wenn Du Dein Programm das nächste mal startest, dann suchst Du diese Datei und, sofern vorhanden, liest deren Inhalt und vergleichst diesen mit den nun aktuellen Zeit.
- DeaD_EyE
- User
- Beiträge: 1020
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Code: Alles auswählen
import datetime
now = datetime.datetime.now() # naive Datetime ohne Zeitzone
utc_now = datetime.datetime.utcnow() # Datetime mit Zeitzone UTC
now_iso_str = now.isoformat()
utc_now_iso_str = utc_now.isoformat()
Ich persönlich nutze dieses Format, da es portabel ist.
Andererseits könntest du auch einfach nur den Timestamp abspeichern. Das geht sehr einfach:
Code: Alles auswählen
now_timestamp = datetime.datetime.now().timestamp()
now_timestamp_str = str(now_timestamp)
# um daraus wieder ein Objekt zu machen:
timestamp_aus_datei = '1527688709.860089'
timestamp = float(timestamp_aus_datei)
last_time = datetime.datetime.fromtimestamp(timestamp)
Wenn du die Datei schreibst, musst du beachten, dass du einen float zuvor in einen string umwandeln musst, sofern du den Timestamp verwendest.
Die Berechnung von delta_time ist auch nicht kompliziert. Eine einfache Subtraktion:
Code: Alles auswählen
last = datetime.datetime.now()
time.sleep(10)
now = datetime.datetime.now()
timedelta = now - last
Code: Alles auswählen
print('\n'.join(entry for entry in dir(timedelta) if not entry.startswith('_')))
Code: Alles auswählen
days
max
microseconds
min
resolution
seconds
total_seconds
Code: Alles auswählen
seconds = 500000
minutes, seconds = divmod(seconds, 60)
hours, minutes = divmod(minutes, 60)
days, hours = divmod(hours, 24)
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server