Français
Source/ Codesnippets

date Timestamp Unix Utc Zeit

 
- page 1 -



Christian
Schneider
GetUnixtime() erstellt aus qui aktuellen Systemzeit une Unix-Timestamp [...]  (Sekunden depuis 01.01.1970 0:00 montre)
->Rückgabewert: Int

UnixToUTC() wandelt une Timestamp dans UTC-Zeit [...] 
-> paramètre: Timestamp (Int)
-> Rückgabewert: String (Format: TTMMJJSSmmss)

UnixToLocal() wandelt une Timestamp dans lokale Systemzeit
-> paramètre: Timestamp (Int)
-> Rückgabewert: String (Format: TTMMJJSSmmss)
KompilierenMarqueSéparation
Definitionen
Def GetSystemTime(1) !"Kernel32.dll","GetSystemTime"
Def SystemTimeToTzSpecificLocalTime(3) !"Kernel32.dll","SystemTimeToTzSpecificLocalTime"
Programm start
CLS
var timestamp% = GetUnixtime()
Print "Timestamp: "+str$(timestamp%)
var time_utc$ = UnixToUTC(timestamp%)
Print "UTC-Zeit: "+left$(time_utc$,2)+"."+mid$(time_utc$,3,2)+"."+mid$(time_utc$,5,4)+" - "+mid$(time_utc$,9,2)+":"+mid$(time_utc$,11,2)+":"+mid$(time_utc$,13,2)
var time_lokal$ = UnixToLocal(timestamp%)
Print "Lokalzeit: "+left$(time_lokal$,2)+"."+mid$(time_lokal$,3,2)+"."+mid$(time_lokal$,5,4)+" - "+mid$(time_lokal$,9,2)+":"+mid$(time_lokal$,11,2)+":"+mid$(time_lokal$,13,2)
Waitkey
Programm ende

Proc GetUnixtime

    Declare SYSTEMTIME#
    Dim SYSTEMTIME#,16
    Declare ut_Jahr%,ut_Monat%,ut_Tag%,ut_Stunde%,ut_Minute%,ut_Sekunde%
    var ut_schalttag%=0
    Declare tage_bis_monatsanfang%[12]
    tage_bis_monatsanfang%[0]=0
    tage_bis_monatsanfang%[1]=0
    tage_bis_monatsanfang%[2]=31
    tage_bis_monatsanfang%[3]=59
    tage_bis_monatsanfang%[4]=90
    tage_bis_monatsanfang%[5]=120
    tage_bis_monatsanfang%[6]=151
    tage_bis_monatsanfang%[7]=181
    tage_bis_monatsanfang%[8]=212
    tage_bis_monatsanfang%[9]=243
    tage_bis_monatsanfang%[10]=273
    tage_bis_monatsanfang%[11]=304
    tage_bis_monatsanfang%[12]=334
    GetSystemTime(SYSTEMTIME#)
    ut_Jahr%=@Word(SYSTEMTIME#,0)
    ut_Monat%=@Word(SYSTEMTIME#,2)
    ut_Tag%=@Word(SYSTEMTIME#,6)
    ut_Stunde%=@Word(SYSTEMTIME#,8)
    ut_Minute%=@Word(SYSTEMTIME#,10)
    ut_Sekunde%=@Word(SYSTEMTIME#,12)

    if (ut_monat%>2) & (ut_jahr% MOD 4 =0) & (ut_jahr% MOD 100 <> 0)

        ut_schalttag%=1

    elseif (ut_monat%>2) & (ut_jahr% MOD 400 = 0)

        ut_schalttag%=1

    endif

    DISPOSE SYSTEMTIME#
    Return ((tage_bis_monatsanfang%[ut_Monat%]*24*60*60) + (ut_Tag%-1)*24*60*60)+ (ut_Sekunde% + ut_Minute%*60 + ut_Stunde%*60*60) + ((ut_Jahr%-1970) * 365 * 24*60*60 + ((((ut_Jahr%-1)-1968)4 - ((ut_Jahr%-1)-1900)100 + ((ut_Jahr%-1)-1600)400)*24*60*60))+(ut_schalttag%*24*60*60)

Endproc

Proc UnixToUTC

    Parameters ut_timestamp%,ut_mode%
    Declare ut_schaltjahr%,ut_schalttage%,ut_wochentag%
    Declare ut_jahr%,ut_monat%,ut_tag%,ut_stunde%,ut_minute%,ut_sekunde%

    if ut_mode%=1

        select ((ut_timestamp%  86400) mod 7)

            caseof 1 Freitag

            ut_wochentag%=5

            caseof 2 Samstag

            ut_wochentag%=6

            caseof 3 Sonntag

            ut_wochentag%=0

            caseof 4 Montag

            ut_wochentag%=1

            caseof 5 Dienstag

            ut_wochentag%=2

            caseof 6 Mittwoch

            ut_wochentag%=3

            caseof 7 Donnerstag

            ut_wochentag%=4

        endselect

    endif

    ut_jahr%=ut_timestamp%  (365*24*60*60) + 1970
    ut_schalttage%=(((ut_Jahr%-1)-1968)4 - ((ut_Jahr%-1)-1900)100 + ((ut_Jahr%-1)-1600)400)

    while (ut_timestamp%-(((ut_jahr%-1970)*365+ut_schalttage%)*24*60*60)+3600) < 0

        case (ut_timestamp%-(((ut_jahr%-1970)*365+ut_schalttage%)*24*60*60)+3600) < 0:ut_jahr%=ut_jahr%-1

    endwhile

    if (ut_jahr% MOD 4 =0) & (ut_jahr% MOD 100 <> 0)

        ut_schaltjahr%=1

    elseif (ut_jahr% MOD 400 = 0)

        ut_schaltjahr%=1

    endif

    ut_timestamp%=(ut_timestamp%-(((ut_jahr%-1970)*365+ut_schalttage%)*24*60*60))

    Select (ut_timestamp%  (24*60*60) + 1)

        CaseOF > 334+ut_schaltjahr%

        ut_monat%=12
        ut_timestamp%=ut_timestamp%-((334+ut_schaltjahr%)*24*60*60)

        CaseOF > 304+ut_schaltjahr%

        ut_monat%=11
        ut_timestamp%=ut_timestamp%-((304+ut_schaltjahr%)*24*60*60)

        CaseOF > 273+ut_schaltjahr%

        ut_monat%=10
        ut_timestamp%=ut_timestamp%-((273+ut_schaltjahr%)*24*60*60)

        CaseOF > 243+ut_schaltjahr%

        ut_monat%=9
        ut_timestamp%=ut_timestamp%-((243+ut_schaltjahr%)*24*60*60)

        CaseOF > 212+ut_schaltjahr%

        ut_monat%=8
        ut_timestamp%=ut_timestamp%-((212+ut_schaltjahr%)*24*60*60)

        CaseOF > 181+ut_schaltjahr%

        ut_monat%=7
        ut_timestamp%=ut_timestamp%-((181+ut_schaltjahr%)*24*60*60)

        CaseOF > 151+ut_schaltjahr%

        ut_monat%=6
        ut_timestamp%=ut_timestamp%-((151+ut_schaltjahr%)*24*60*60)

        CaseOF > 120+ut_schaltjahr%

        ut_monat%=5
        ut_timestamp%=ut_timestamp%-((120+ut_schaltjahr%)*24*60*60)

        CaseOF > 90+ut_schaltjahr%

        ut_monat%=4
        ut_timestamp%=ut_timestamp%-((90+ut_schaltjahr%)*24*60*60)

        CaseOF > 59+ut_schaltjahr%

        ut_monat%=3
        ut_timestamp%=ut_timestamp%-((59+ut_schaltjahr%)*24*60*60)

        CaseOF > 31

        ut_monat%=2
        ut_timestamp%=ut_timestamp%-(31*24*60*60)
        Otherwise
        ut_monat%=1

    Endselect

    ut_tag% = ut_timestamp%  (24*60*60) + 1
    ut_timestamp% = (ut_timestamp%-((ut_tag%-1) * 24*60*60))
    ut_stunde% = ut_timestamp%  (60*60)
    ut_timestamp% = (ut_timestamp%-((ut_stunde%)*60*60))
    ut_minute% = ut_timestamp%  60
    ut_timestamp% = (ut_timestamp%-((ut_minute%)*60))
    ut_sekunde% = ut_timestamp%

    ifnot ut_mode%=1

        Return @If(ut_tag%<10,"0","")+str$(ut_tag%)+@If(ut_monat%<10,"0","")+str$(ut_monat%)+str$(ut_jahr%)+@If(ut_stunde%<10,"0","")+ str$(ut_stunde%)+@If(ut_minute%<10,"0","")+str$(ut_minute%)+@If(ut_sekunde%<10,"0","")+str$(ut_sekunde%)

    else

        Return str$(ut_jahr%)+@If(ut_monat%<10,"0","")+str$(ut_monat%)+str$(ut_wochentag%)+@If(ut_tag%<10,"0","")+str$(ut_tag%)+@If(ut_stunde%<10,"0","")+str$(ut_stunde%)+@If(ut_minute%<10,"0","")+str$(ut_minute%)+@If(ut_sekunde%<10,"0","")+str$(ut_sekunde%)

    EndIF

Endproc

Proc UnixToLocal

    Parameters u2l%
    Declare SYSTEMTIME#,SYSTEMTIME2#,u2l_return$
    Dim SYSTEMTIME#,16
    Dim SYSTEMTIME2#,16
    Declare ut_rückg$
    ut_rückg$ = UnixToUTC(u2l%,1)
    Word SYSTEMTIME#,0=val(left$(ut_rückg$,4))
    Word SYSTEMTIME#,2=val(mid$(ut_rückg$,5,2))
    Word SYSTEMTIME#,4=val(mid$(ut_rückg$,7,1))
    Word SYSTEMTIME#,6=val(mid$(ut_rückg$,8,2))
    Word SYSTEMTIME#,8=val(mid$(ut_rückg$,10,2))
    Word SYSTEMTIME#,10=val(mid$(ut_rückg$,12,2))
    Word SYSTEMTIME#,12=val(mid$(ut_rückg$,14,2))
    Word SYSTEMTIME#,14=1
    SystemTimeToTzSpecificLocalTime(0,SYSTEMTIME#,SYSTEMTIME2#)
    u2l_return$ = @IF(@Word(SYSTEMTIME2#,6)<10,"0","")+str$(@Word(SYSTEMTIME2#,6))+@IF(@Word(SYSTEMTIME2#,2)<10,"0","")+str$(@Word(SYSTEMTIME2#,2))+str$(@Word(SYSTEMTIME2#,0))+@IF(@Word(SYSTEMTIME2#,8)<10,"0","")+str$(@Word(SYSTEMTIME2#,8))+@IF(@Word(SYSTEMTIME2#,10)<10,"0","")+str$(@Word(SYSTEMTIME2#,10))+@IF(@Word(SYSTEMTIME2#,12)<10,"0","")+str$(@Word(SYSTEMTIME2#,12))
    Dispose SYSTEMTIME#,SYSTEMTIME2#
    Retour u2l_return$

ENDPROC

 
XProfan 11| Vista(64) SP2
24.05.2010  
 



 
- page 1 -



Dieter
Zornow
allez malheureusement toujours pas, siehe Bild

29 kB
Hochgeladen:25.05.2010
Downloadcounter233
Download
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
25.05.2010  
 



Christian Schneider, Beitrag=57201, Zeitpunkt=24.05.2010
Michaels Code habe je zwischenzeitlich aussi entdeckt, allerdings hat mich qui Assemblerteil erfolgreich dans qui Flucht geschlagen ;)


hé, Du brauchst doch seulement Imprimer UnixTime() écrivons. ^ ^

si Dein UnixToUTC korrekt funktioniert, ensuite serait je daraus später aussi volontiers un natives MKTime faire et es dans XPSE comme echte Funktion intégrer.
 
25.05.2010  
 




Christian
Schneider
Dieter Zornow, Beitrag=57203, Zeitpunkt=25.05.2010
allez malheureusement toujours pas, siehe Bild


j'ai es chez mir nochmal sous GMT+7 getestet, aussi là funktionierts. Sollte alors Schonmal pas à qui Zeitzone liegen.
je pourrait mir theoretisch encore présenter cela qui Beta eventuell quer schießt. Hab malheureusement diesmal qui Subscription verschlafen et peux denke je seulement im Laufe qui semaine avec cela testen. Habe dir la fois une avec 11.2 erstelle exe angehängt.

Éditer: mon naturellement 11.2

1.037 kB
Hochgeladen:25.05.2010
Downloadcounter141
Download
31 kB
Hochgeladen:25.05.2010
Downloadcounter227
Download
 
XProfan 11| Vista(64) SP2
25.05.2010  
 



Du beachtest déjà beim le calcul, dass 32-Bit pour une TimeStamp pas toujours reichen doit !? (überschaue je maintenant pas)

dernier Anhang funktioniert chez mir ici sur einem 32-Bit-XP-Home korrekt.
 
25.05.2010  
 




Christian
Schneider
iF, Beitrag=57204, Zeitpunkt=25.05.2010
hé, Du brauchst doch seulement Imprimer UnixTime() écrivons. ^ ^


cela mag son, mais je versuche Schnipsel trop vermeiden, qui je nichtmal im Ansatz verstehe (Assembler..).

iF, Beitrag=57204, Zeitpunkt=25.05.2010
si Dein UnixToUTC korrekt funktioniert, ensuite serait je daraus später aussi volontiers un natives MKTime faire et es dans XPSE comme echte Funktion intégrer.


Werde toi là pas aufhalten ^ ^

jusqu'à zum 19. janvier 2038 sollte es avec 32Bit aucun Probleme donner.
 
XProfan 11| Vista(64) SP2
25.05.2010  
 



 
- page 2 -


>> qui je nichtmal im Ansatz verstehe (Assembler..).

Nene je crois wir reden aneinander vorbei.
KompilierenMarqueSéparation
 {$cleq}
cls
print UnixTime()
print test()
WaitINput
End

nproc test//eine einzige nProc im Code reicht aus um den nativen Sprachschatz auch für den nicht-nativen Bereich (print UnixTime()) zu aktivieren.

    return 55

c

... et cela wars aussi déjà.

voilà nix avec Assembler - peux on simple so écrivons - s'il te plaît vlt. einmal ausprobieren.
 
25.05.2010  
 




Christian
Schneider
Allerdings, dachte du beziehst toi sur qui Codevorlage de Michael. Werde je (si je cela Ganze zeitkritischer besoin sollte) sur elle revenir.
 
XProfan 11| Vista(64) SP2
25.05.2010  
 



je hatte Michaels Code comme Présentation genutzt (si aussi un paire Changements notwendig étions) zum Einbau qui Funktion UnixTime [...]  comme "echte" native Funktion - ist comment Du sagst pour zeitkritische Dinge super ou bien si on cet Funktion dans Threads/ CallBacks nutzen mag. mon idée était arrêt, dass Du cela Ergebnis qui une Funktion zum comparaison avec dem Ergebnis qui anderen Funktion nutzen peux.
 
25.05.2010  
 




Christian
Schneider
Habe la fois verglichen. Entweder allez mon Funktion um 286 Sekunden pour, ou bien deine avant

Habe maintenant nochmal folgende page zum comparaison rangezogen: [...] 
le son denen scheint mon Wert trop stimmen

Werde aujourd'hui soir nochmal regarder wohin es là u.U. klemmt.
 
XProfan 11| Vista(64) SP2
25.05.2010  
 



un Grund, weshalb ego comparer pour important arrêt - irgendwo ist oui toujours un Bug. ^ ^
 
25.05.2010  
 




Dieter
Zornow
oui tu as droite, es liegt à Beta Version de XProfan, habe den Code justement la fois avec 11.2 getestet, Ergebnis scheint ok.
cela muss sich aussi Roland anschauen, quoi là dans 12 de travers fonctionne.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
25.05.2010  
 




RGH
Dieter Zornow, Beitrag=57219, Zeitpunkt=25.05.2010
oui tu as droite, es liegt à Beta Version de XProfan, habe den Code justement la fois avec 11.2 getestet, Ergebnis scheint ok.
cela muss sich aussi Roland anschauen, quoi là dans 12 de travers fonctionne.


oui, XProfan 12ß hat encore un Problem, si SELECT sur un QuadInt trifft. (un Ergebnis einer ganzzahligen Division est un QuadInt.)
Workaround jusqu'à zum prochain Subscriptionsrelease siehe ici:
[...] 

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
26.05.2010  
 




Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

20.755 Views

Untitledvor 0 min.
Sven Bader16.05.2024
H.Brill11.11.2022
Jens-Arne Reumschüssel16.05.2021
Thomas Zielinski12.02.2021
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie