Español
Fuente/ Codesnippets

Datum Timestamp Unix Utc Tiempo

 
- Página 1 -



Christian
Schneider
GetUnixtime() erstellt de el aktuellen Systemzeit una Unix-Timestamp [...]  (Sekunden seit 01.01.1970 0:00 Uhr)
->Rückgabewert: Int

UnixToUTC() wandelt una Timestamp en UTC-Tiempo [...] 
-> Parámetro: Timestamp (Int)
-> Rückgabewert: String (Formato: TTMMJJSSmmss)

UnixToLocal() wandelt una Timestamp en lokale Systemzeit
-> Parámetro: Timestamp (Int)
-> Rückgabewert: String (Formato: TTMMJJSSmmss)
KompilierenMarcaSeparación
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))
    Disponer SYSTEMTIME#,SYSTEMTIME2#
    Volver u2l_return$

ENDPROC

 
XProfan 11| Vista(64) SP2
24.05.2010  
 



 
- Página 1 -



Dieter
Zornow
Geht desafortunadamente siempre todavía no, siehe Bild

29 kB
Hochgeladen:25.05.2010
Ladeanzahl233
Descargar
 
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 Yo zwischenzeitlich auch entdeckt, allerdings ha mich el Assemblerteil erfolgreich en el Flucht geschlagen ;)


He, Usted necesidad doch sólo Imprimir UnixTime() escribir. ^ ^

Wenn Su UnixToUTC korrekt funktioniert, Yo lo später También me gusta una natives MKTime hacer y lo en XPSE como echte Función integrieren.
 
25.05.2010  
 




Christian
Schneider
Dieter Zornow, Beitrag=57203, Zeitpunkt=25.05.2010
Geht desafortunadamente siempre todavía no, siehe Bild


Yo habe lo en me otra vez bajo GMT+7 getestet, auch como funktionierts. Sollte also schonmal no a el Zeitzone mentira.
Yo podría me theoretisch todavía vorstellen el el Beta eventuell quer schießt. Hab desafortunadamente diesmal el Suscripción soñoliento y kann denke Yo sólo en el Laufe Esta semana así testen. Posesiones dir veces una con 11.2 erstelle exe angehängt.

Editar: Mi natürlich 11.2

1.037 kB
Hochgeladen:25.05.2010
Ladeanzahl141
Descargar
31 kB
Hochgeladen:25.05.2010
Ladeanzahl227
Descargar
 
XProfan 11| Vista(64) SP2
25.05.2010  
 



Usted beachtest ya beim Rechnen, dass 32-Bit para una TimeStamp no siempre reichen necesario !? (überschaue Yo ahora no)

Letzter Anhang funktioniert en me hier en una 32-Bit-XP-Home korrekt.
 
25.05.2010  
 




Christian
Schneider
IF, Beitrag=57204, Zeitpunkt=25.05.2010
He, Usted necesidad doch sólo Imprimir UnixTime() escribir. ^ ^


Das mag ser, pero yo versuche Schnipsel a vermeiden, el Yo nichtmal en el Ansatz verstehe (Ensamblador..).

IF, Beitrag=57204, Zeitpunkt=25.05.2010
Wenn Su UnixToUTC korrekt funktioniert, Yo lo später También me gusta una natives MKTime hacer y lo en XPSE como echte Función integrieren.


Werde dich como no aufhalten ^ ^

Bis para 19. Januar 2038 debería lo con 32Bit no Problemas geben.
 
XProfan 11| Vista(64) SP2
25.05.2010  
 



 
- Página 2 -


>> el Yo nichtmal en el Ansatz verstehe (Ensamblador..).

Nene Yo glaube wir reden aneinander vorbei.
KompilierenMarcaSeparación
 {$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

... y el wars auch ya.

Como es nix con Ensamblador - puede ser simplemente así escribir - Por favor, vlt. una vez ausprobieren.
 
25.05.2010  
 




Christian
Schneider
Aunque, pensamiento du beziehst dich en el Codevorlage de Michael. Werde Yo (si yo el Ganze zeitkritischer benötigen debería) en él zurückkommen.
 
XProfan 11| Vista(64) SP2
25.05.2010  
 



Tuve Michaels Code como Presentación genutzt (si auch algunos cambios notwendig waren) para Einbau el Función UnixTime [...]  como "echte" native Función - es como Usted sagst para zeitkritische Dinge super oder si uno esta Función en Hilos/ CallBacks nutzen mag. Mein Gedanke war sólo, dass Usted el Ergebnis el una Función para Vergleich con el Ergebnis el otro Función nutzen kannst.
 
25.05.2010  
 




Christian
Schneider
Posesiones veces verglichen. Entweder va mi Función en 286 Sekunden después de, oder deine antes

Posesiones ahora otra vez folgende Página para Vergleich rangezogen: [...] 
Laut denen scheint mein Valor a stimmen

Werde heute Abend otra vez schauen wo lo como u.U. klemmt.
 
XProfan 11| Vista(64) SP2
25.05.2010  
 



Ein Grund, por qué ego Vergleichen para wichtig sólo - irgendwo es sí siempre una Bug. ^ ^
 
25.05.2010  
 




Dieter
Zornow
Sí du hast bastante, lo liegt a Beta Versión de XProfan, habe el código gerade veces con 11.2 getestet, Ergebnis scheint ok.
Das muss se auch Roland anschauen, qué como en 12 sale mal.
 
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
Sí du hast bastante, lo liegt a Beta Versión de XProfan, habe el código gerade veces con 11.2 getestet, Ergebnis scheint ok.
Das muss se auch Roland anschauen, qué como en 12 sale mal.


Sí, XProfan 12ß ha todavía una Problema, si SELECT en una QuadInt trifft. (Ein Ergebnis uno ganzzahligen Division es una QuadInt.)
Workaround a para nächsten Subscriptionsrelease siehe hier:
[...] 

Saludo
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


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

20.783 Views

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

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie