Seite 1 von 1

Berechnung efa-Datumsfelder - gelöst

Verfasst: Do 5. Apr 2018, 11:05
von RuderMarkus
Hallo Nick,

ich hab verschiedene Beiträge gefunden in denen man sich fragte, wie denn die Gültigkeitsfelder berechnet werden:

ValidFrom|InvalidFrom
1514761200000|1546297200000
1.1.2018 0:00:00|31.12.2018 23:59:59

Leider hab ich keine Antwort gefunden.

Ich würde gerne die Ruderkursteilnehmer eines Jahres direkt in der Gültigkeit begrenzen. Derzeit muss ich dazu bei einer Testperson das Gültig bis setzen, dann Exportieren, die xml öffnen, das richtige Feld erwischen, neuen Testsatz erstellen, importieren, verfizieren, dass das Datum stimmt und kann dann den Import vornehmen.

Schöner wäre es, wenn beim Import das Datum passend gesetzt wird, oder ich über die Berechnungsroutine in efa das Datum voraus berechne und dann direkt in InvalidFrom einfüge. Auf welche Datumsroutine greift efa hier zu?


Danke und Gruß
Markus

Re: Berechnung efa-Datumsfelder

Verfasst: So 22. Apr 2018, 23:31
von thomasp
Hallo Markus,

wenn ich dich richtig verstehe, suchst du die Umrechnung von einem normalen Datum in einene EFA-Zeitstempel und umgekehrt.
Ein EFA-Datum ist ein Unix-Zeitstempel, d.h die Anzahl der Sekunden seit dem 01.01.1970 00:00:00 GMT (historisch in Gebrauch bei allen Unix/Linux-Rechnern), wobei EFA noch überflüssige Millisekunden dran hängt (3 zusätzliche Stellen, die man bei der Eingabe als 000 liefern kann).

In Linux ist die Umrechnung auf der Kommandozeile mit "date" einfach:

Code: Alles auswählen

efa@raspi3 ~ $ date --date=@1546297200
Di 1. Jan 00:00:00 CET 2019
efa@raspi3 ~ $ date '+%s' --date=2018-01-01
1514761200
efa@raspi3 
Für MS-Windows habe ich nichts bei der Hand. Aber mit den Suchbegriffen "unix datum in windows berechnen" habe ich einige Webseiten gefunden, die die Umrechnung in beiden Richtungen online anbieten (immer dran denken: die letzten 3 Ziffern streichen bzw. umgekehrt an das Ergebnis 000 dran hängen).
Z.B. http://www.unix-timestamp.de/ (GMT-Zeit!)

Hope that helps.

Re: Berechnung efa-Datumsfelder

Verfasst: Sa 19. Mai 2018, 22:45
von RuderMarkus
Hallo Thomas,

Danke Dir!

Hier die entsprechende Formel für die Kalkulation in Excel:

Code: Alles auswählen

=(ValidFrom-25569)*86400000-TimeDiffInHrs*3600*1000

Code: Alles auswählen

=(InvalidFrom-25569)*86400000-TimeDiffInHrs*3600*1000
Leider kann ich keine xlsx hochladen. Daher zwei Screenshots wie die Datei bei mir aussieht.

Vielleicht kann das ja noch jemand gebrauchen.

Gruß Markus