Seite 1 von 1
StartTime in 3PG.tmr
Verfasst: Mo 12. Nov 2007, 14:49
von ramses69
Hi
Kann mir jemand sagen wie man die startTime im 3PG.tmr umrechnet:
z.b: 0xD4900600 = 12.11.2007 0600
Dabei sind die letzten zwei Bytes die Uhrzeit, aber wie kommt man von d490 auf den 12.11.2007?
Gruß Ramses.
AW: StartTime in 3PG.tmr
Verfasst: Mo 12. Nov 2007, 16:34
von cactux
In der 3PG.exe mache ich das mit folgender Funktion:
Code: Alles auswählen
int TAP_ExtractMjd(word mjd, word *year, byte *month, byte *day, byte *weekDay)
{
time_t t1;
struct tm *lct;
t1 = ((mjd-40587)*86400)+43200;
lct = localtime(&t1);
*year = lct->tm_year+1900;
*month = lct->tm_mon+1;
*day = lct->tm_mday;
*weekDay = (lct->tm_wday+6)%7;
return 0;
}
AW: StartTime in 3PG.tmr
Verfasst: Mo 12. Nov 2007, 16:45
von Maliboy
Interessant...
Jetzt kann ich auch mit meinem Perl-Einzeiler das richtige Datum auslesen
Aber ganz verstehe ich nicht, was Du da treibst...
Die 86400 sind die Anzahl Sekunden pro Tag. Und die 43200 Sorgen dafür, das Du um 12:00 Uhr Mittag bist. Aber warum ziehst Du vom Wert 40587 ab (bzw. beim umgekehrten Fall, warum addierst Du zu den Tagen seit 1.1.1970 noch 40587 Tage hinzu) ?
AW: StartTime in 3PG.tmr
Verfasst: Mo 12. Nov 2007, 17:16
von ramses69
@cactux: Alles klar, Danke!
AW: StartTime in 3PG.tmr
Verfasst: Mo 12. Nov 2007, 17:45
von cactux
[quote=""Maliboy""] Aber warum ziehst Du vom Wert 40587 ab (bzw. beim umgekehrten Fall, warum addierst Du zu den Tagen seit 1.1.1970 noch 40587 Tage hinzu) ?[/quote]
Bei MJD ist der Wert Null nicht der 1.1.1970 sondern 40587 Tage weiter in der Vergangenheit
(17. November 1858).
AW: StartTime in 3PG.tmr
Verfasst: Do 27. Okt 2011, 00:43
von FilmFan
Hier für alle Interessierte noch ein wenig Hintergundwissen zum von Topfield verwendeten Modifiziertem Julianischem Datum (MJD):
Im Internationalen Geophysikalischen Jahr (1957/58) wurde ein Modifiziertes Julianisches Datum (MJD) eingeführt, mit Nullpunkt am 17. November 1858 0:00 Uhr UT: MJD = JD(UT) 2.400.000,5. Damit hat es deutlich weniger Vorkommastellen als das Julianische Datum. Das MJD wird hauptsächlich in der Geodäsie, Geophysik, Metrologie und Raumfahrt, seltener auch in der Astronomie verwendet.
(
Quelle)
The Modified Julian Day is found by rounding downward. The MJD was introduced by the Smithsonian Astrophysical Observatory in 1957 to record the orbit of Sputnik via an IBM 704 (36-bit machine) and using only 18 bits until August 7, 2576. MJD is the epoch of OpenVMS, using 63-bit date/time postponing the next Y2K campaign to July 31, 31086 02:48:05.47.
(
Quelle)
P. S.: Der von Topfield verwendete 16-Bit-Wert reicht bis zum 22.04.2038.
AW: StartTime in 3PG.tmr
Verfasst: Do 27. Okt 2011, 08:50
von JayTee
Leichenschänder?
AW: StartTime in 3PG.tmr
Verfasst: Do 27. Okt 2011, 09:27
von FireBird
Nö, umfangreiche Recherche.