Deutsch
Quelltexte/ Codesnippets

Datum\Zeit zu Unixtime konvertieren

 

p.specht

Unixtime
============
Die Unixtime beginnt als Sekundenzähler mit 0 am Donnerstag, dem 1. Januar 1970 um 00:00 Uhr UTC. Bitte zu beachten, daß wir UTC+1 im Winter und UTC+2 in der Sommerzeit haben. Die Ausgabe bei der Umwandlung wird daher entsprechend der Zeitzone und Periode anzupassen sein. Die Umwandlung wird ganz offiziell dadurch erleichtert, daß Schaltsekunden nicht mitgezählt werden (Diese sollen ja die Abweichung der Erdrotation von einer stetig durchlaufenden Zeit korrigieren).

Das festgelegte Startdatum wird auch als Epoch bezeichnet, was bei 32bit-System wichtig werden wird, denn 2038 wird sich für Unix in etwa das wiederholen, was bei Windows schon als Jahr-2000-Problem bekannt wurde.

In aktuellen Versionen von XProfan kann man das alles eleganter lösen. Für XProfan 11.2 free war die Quelle: Wikipedia "Unixtime" (Java-Beispielcode).
Ein deutlich flotteres, in Assembler geschriebenes Unixtime-Programm von M. Wodrich gibt es hier im Board; auch Dieter Zornow hat sich mit dem Problem beschäftigt.

WindowTitle "Konverter Lesbare Zeitangabe zu Unixtime (Sekunde 0 = Do,1.1.1970 00:00 UTC (damals GMT)"
'Vgl:https://www.unixtimestamp.de , www.pagerenk.de/mehr-informationen/tools/timestampconverter.htm
WindowStyle 24:Declare Jahr&,Monat&,Tag&,Stunde&,Minute&,Sekunde&,utcdif&,UXTM&:luup:
CLS:print "\n UTC+1\+2h= ";:input utcdif&
Print "\n     JJJJ = ";:input Jahr&:Print "    Monat = ";:input Monat&
Print "      Tag = ";:input Tag&:Print "  Stunden = ";:input Stunde&
Print "  Minuten = ";:input Minute&:print " Sekunden = ";:input Sekunde&
UXTM&=Readable2Unixtime(Jahr&,Monat&,Tag&,Stunde&,Minute&,Sekunde&,utcdif&)
locate 12,12:font 2:if (UXTM&<>-1) and (UXTM&<>-2):print UXTM&
clearclip:putclip str$(UXTM&):font 2:print:print "\n ... auch in Zwischenablage."
else:beep:print "E R R O R ";UXTM&:Endif:font 0
waitinput:waitinput:goto "luup"

Proc Readable2Unixtime' Konvertiert gegliederte UTC-Angaben nach Unix-Sekunden

    parameters Jahr&,Monat&,Tag&,Stunde&,Minute&,Sekunde&,utcdif&' GETESTET, ABER OHNE JEDE GEWÄHR!
    case (jahr&<1970) or (jahr&>2038) or (monat&>12) or (monat&<1) or (tag&<1) or (tag&>31):return -1
    case (Stunde&>23) or (Minute&>59) or (Sekunde&>59) :return -2
    declare tage_seit_jahresanfang$[],istschaltjahr&,schaltjahre&,tage_seit_1970&
    'Anzahl der Tage seit Jahresanfang ohne Tage des aktuellen Monats und ohne Schalttag:
    tage_seit_jahresanfang$[]=explode("0,31,59,90,120,151,181,212,243,273,304,334",",")
    ' Anzahl der Schaltjahre seit 1970 ohne ein evtl. gerade laufendes Schaltjahr
    schaltjahre& = ((jahr&-1)-1968)/4 - ((jahr&-1)-1900)/100 + ((jahr&-1)-1600)/400
    tage_seit_1970&=(jahr&-1970)*365+schaltjahre&+val(tage_seit_jahresanfang$[monat&-1])+tag&-1

    if (jahr& mod 4)=0: istschaltjahr&=1:if (jahr& mod 100)=0: istschaltjahr&=0

        case (jahr& mod 400)=0: istschaltjahr&=1
        endif:endif' Schalttage+1, wenn angefragte Jahrs Schaltjahr und Termin nach Februar:
        case (monat&>2) and istschaltjahr&: inc tage_seit_1970&
        return int(sekunde&+60*(minute&+60*(stunde&+24*tage_seit_1970&))-utcdif&*3600)

    endproc

 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
20.05.2021  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.370 Betrachtungen

Unbenanntvor 0 min.
Sven Bader16.05.2024
p.specht21.11.2021
R.Schneider20.11.2021
Uwe Lang20.11.2021
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

p.specht (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie