Español
Incluye

Datum y Uhrzeit berechnen 2

 
- Página 1 -



Clemens
Meier
¡Hola zusammen,

Yo benutze XProfan sólo otra vez seit unos pocos Tagen, en para una Freund una Geburtstagsgeschenk a remendar. Dabei fiel me en, dass en XProfan casi no Datum- y Uhrzeitfunktionen para encontrar son. Man bekommt zwar el aktuelle Datum y el aktuelle Uhrzeit, doch el war lo ya. Nichts con berechnen, vergleichen oder ähnliches. Und como Yo auch todavía una begeisterter PHPler bin, el Dinge como date y mktime sabe, Yo veces dran gesetzt y beides para XProfan como include-Expediente realisiert.

Yo habe allerdings unos pocos Stunden gebraucht, porque beim Testen spezieller Sonderfälle siempre otra vez kleinere Problemas auftauchten, el hoffentlich nun todos beseitigt son.

Gültigkeitsbereich: 1970 a 2099
Sommerzeit y GMT no es berücksichtigt (wäre sólo wichtig, si uno encima el Rechner hinaus Veces vergleichen muss)

Angaben de Monats- y Wochentagsnamen son en Alemán. Wochennummern después de ISO (ächz, war no ligeramente). Und natürlich puede ser innerhalb el mktime - Función auch rechnen y el Función übernimmt el Corrección el Daten (Ejemplo siehe beiliegender datumuhrzeit.prf). Weiteres siehe hinweis.txt en el Zip-Expediente.

Yo hoffe, lo kann gebraucht y ser Yo soy en una Feedback

Saludo

Clemens

4 kB
Hochgeladen:16.03.2006
Ladeanzahl493
Descargar
 
XProfan 9.1; XP SP2; FF; Editpad
16.03.2006  
 



 
- Página 1 -


Sí, en el Alemán Kalender beginnt el erste Semana con Esta semana a zählen, el mindestens 4 Tage ha. Durch esta Verschieberei kann lo en un Jahr incluso 53 Wochen geben - lo muß also auch el Vorjahr con beachtet voluntad, si la erste Semana no en 1 beginnt (Entscheidung: 52. od. 53. Semana des Vorjahres).

[quote:0bf01e8fa7=Clemens Meier]Und como Yo auch todavía una begeisterter PHPler bin[/quote:0bf01e8fa7]
Dann mostrar Usted auch veces el Codesnippet unix time PHP a.

Ansätze para Datum y Zeitberechnungen findest Usted en Suchfunktion, lo gab como ya algunos Sachen.

Tal vez entsteht sí todavía veces una kompletter Satz a Datum-/Zeitroutinen.

Schöne Grüße
Michael Wodrich
 
16.03.2006  
 




Jac
de
Lad
Geht prima, tener a ahora no Fehler entdecken puede.

@Franco: Como hätte Yo Parcival also auch en el Wettbewerb puesto puede??? Geht el ahora todavía, obwohl Yo ya así viel hin- y hergepostet tener???

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
17.03.2006  
 




Frank
Abbing
Klar, Jac. Wüsste no, qué dagegen sprechen debería.
 
17.03.2006  
 




ByteAttack
Naja! Yo weiß ahora echt no woran lo liegt, aber Incluya el hängt se en, sobald el 31.12.2007 en el Spiel kommt.
Bitte veces Probieren:
 $I date.inc
Declarar monat%,tag%,jahr%,temp$
Ventana de Estilo 26
Título de la ventana date.inc Test
Ventana 0,0-%maxX,%maxY
Erster Test
monat%=12
tag%=31
jahr%=2008
temp$=Ein Tag später como el +str$(tag%)+.+Str$(monat%)+.+Str$(jahr%)+ es el:
imprimir temp$+Ins$(.,Ins$(.,fdate(%d%m%Y,mktime(0,0,0,monat%,tag%+1,jahr%)),3),6) +1Tag
Zweiter Test
jahr%=2007
temp$=Ein Tag später como el +str$(tag%)+.+Str$(monat%)+.+Str$(jahr%)+ es el:
imprimir temp$+Ins$(.,Ins$(.,fdate(%d%m%Y,mktime(0,0,0,monat%,tag%+1,jahr%)),3),6) +1Tag
waitmouse
 
Website:  [...] 
Facebook:  [...] 
30.10.2007  
 




GDL
Gültigkeitsbereich: 1970 a 2099

Sniff, bin aba 61 geboren.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
30.10.2007  
 




Dieter
Zornow
En me stimmt einiges no beim Test z.B. jetziges Datum y Uhrzeit antes 100 Stunden kommt en me
01.01.1970 00.00:00, el Ejemplo de Marc es auch daneben.

Saludo de Bangkok

Dieter

21 kB
Hochgeladen:31.10.2007
Ladeanzahl483
Descargar
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
31.10.2007  
 




ByteAttack
Naja, Yo glaube con el MWDATE.DLL es uno mejor dran. (Geht bloß desafortunadamente sólo bajo Profano de Versión 10)
 
Website:  [...] 
Facebook:  [...] 
31.10.2007  
 




Michael
Wodrich
Marc-Gordon
Naja, Yo glaube con el MWDATE.DLL es uno mejor dran. (Geht bloß desafortunadamente sólo bajo Profano de Versión 10)


Dann muß Yo mich como wohl todavía veces dransetzen?

El Includedatei kann así adaptado voluntad, el auch frühere Versionen así klar kommen (entonces fallen algunos en el Incluir programmierte Dinge weg; oder voluntad umgeschrieben).

Yo werds me otra vez en el ToDo-Liste conjunto...

Schöne Grüße
Michael Wodrich

P.S.: El DLL fängt en 1600 a (wegen Schaltjahr-Gedöns). Yo persönlich saber no mehr persönlich, el vorher geboren wurde.
 
Programmieren, das spannendste Detektivspiel der Welt.
31.10.2007  
 



 
- Página 2 -



Frank
Abbing

P.S.: El DLL fängt en 1600 a (wegen Schaltjahr-Gedöns). Yo persönlich saber no mehr persönlich, el vorher geboren wurde.


[web]https://de.wikipedia.org/wiki/Gregorianischer_Kalender[/web]
 
31.10.2007  
 



Frank Abbing
Frank Abbing
P.S.: El DLL fängt en 1600 a (wegen Schaltjahr-Gedöns). Yo persönlich saber no mehr persönlich, el vorher geboren wurde.


[web]https://de.wikipedia.org/wiki/Gregorianischer_Kalender[/web]


Was ha el una con el Anderen a tun?
 
31.10.2007  
 




Michael
Wodrich
Das war una Wink con el Zaunpfahl.

Das Schaltjahr-Gedöns fue un richtige Kalenderreform - una Krimi:
Papst Gregor stiehlt el ganzen Welt 10 Tage.

Den Link Tuve de paso todavía no en meiner Sammlung - muß bastante neu ser.
Sin embargo, en Wikipedia ortelius.de no como Link aufgeführt - así fehlt hay eindeutig algo.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
31.10.2007  
 




René
Wagner
Moin,

como Yo en mi aktuellen Projekt con dieser INC arbeite, musste Yo zwangsläufig unos pocos kleinere Korrekturen vornehmen.
En Monatstag-Definition waren ; al Ende, el klappt tal vez con PHP, pero no con XProfan.

Ausserdem wurde en fdate algunos Variables doppelt deklariert. Nachfolgend el korrigierte INC-Code.
PROC isdate

    parámetros monat%,tag%,jahr%
    declarar cadena$,check$
    cadena$ = @str$(tag%)+.+@str$(monat%)+.+@str$(jahr%)

    if (jahr%>1000)

        check$ = %Y

    más

        check$ = %y

    endif

    if (cadena$ = fdate(%j.%n.+check$,mktime(0,0,0,monat%,tag%,jahr%)))

        volver 1

    más

        volver 0

    endif

ENDPROC

PROC now

    declarar cadena$,help$,jahr%,monat%,tag%,stunde%,minute%,sekunde%
    cadena$ = @time$(0)+:+@substr$(@time$(1),1,.)
    help$ = @substr$(cadena$,1,:)
    stunde% = help$
    help$ = @substr$(cadena$,2,:)
    minute% = help$
    help$ = @substr$(cadena$,3,:)
    sekunde% = help$
    cadena$ = date$(3)
    help$ = @mid$(cadena$,1,4)
    jahr% = help$
    help$ = @mid$(cadena$,5,2)
    monat% = help$
    help$ = @mid$(cadena$,7,2)
    tag% = help$
    volver mktime(stunde%,minute%,sekunde%,monat%,tag%,jahr%)

ENDPROC

PROC fdatelong

    parámetros zahl%
    declarar zahl$
    zahl$ = zahl%

    if (zahl%<10)

        zahl$ = 0+@str$(zahl%)

    endif

    volver zahl$

ENDPROC

PROC mktime

    parámetros stunde_mk%,minute_mk%,sekunde_mk%,monat_mk%,tag_mk%,jahr_mk%
    declarar sekunden&,anzahltage&,monatstage$,monatstageS$,hilfe_mk%,hilfe$,ende_mk%,okay_mk%,schaltjahr$,monatb_mk%
    ; al Zeilenende lejos
    monatstage$ = 31,28,31,30,31,30,31,31,30,31,30,31
    monatstageS$ = 31,29,31,30,31,30,31,31,30,31,30,31
    Korrigiere hier ggf. el Datum
    ende_mk% = 2

    mientras que ende_mk%

        okay_mk% = 1
        Prüfe el Sekunden

        if (okay_mk% = 1)

            if (sekunde_mk%>59)

                sekunde_mk% = sekunde_mk%-60
                minute_mk% = minute_mk% + 1
                okay_mk% = 0

            elseif (sekunde_mk%<0)

                sekunde_mk% = sekunde_mk%+60
                minute_mk% = minute_mk% - 1
                okay_mk% = 0

            endif

        endif

        Prüfe el Minuten

        if (okay_mk% = 1)

            if (minute_mk%>59)

                minute_mk% = minute_mk%-60
                stunde_mk% = stunde_mk% + 1
                okay_mk% = 0

            elseif (minute_mk%<0)

                minute_mk% = minute_mk%+60
                stunde_mk% = stunde_mk% - 1
                okay_mk% = 0

            endif

        endif

        Prüfe el Stunden

        if (okay_mk% = 1)

            if (stunde_mk%>23)

                stunde_mk% = stunde_mk%-24
                tag_mk% = tag_mk% + 1
                okay_mk% = 0

            elseif (stunde_mk%<0)

                stunde_mk% = stunde_mk%+24
                tag_mk% = tag_mk% - 1
                okay_mk% = 0

            endif

        endif

        Prüfe el Tag

        if (okay_mk% = 1)

            schaltjahr$ = monatstage$

            if ((jahr_mk% MOD 4) = 0)

                schaltjahr$ = monatstageS$

            endif

            if (monat_mk%<1)

                monatb_mk% = ((monat_mk% - 1) MOD 12) + 13

            más

                monatb_mk% = ((monat_mk% - 1) MOD 12) + 1

            endif

            if (tag_mk%>@val(@substr$(schaltjahr$,monatb_mk%,,)))

                tag_mk% = tag_mk% - @val(@substr$(schaltjahr$,monatb_mk%,,))
                monat_mk% = monat_mk% + 1
                okay_mk% = 0

            elseif (tag_mk%<1)

                monat_mk% = monat_mk% - 1

                if (monat_mk%<1)

                    monatb_mk% = ((monat_mk% - 1) MOD 12) + 13

                más

                    monatb_mk% = ((monat_mk% - 1) MOD 12) + 1

                endif

                tag_mk% = tag_mk% + @val(@substr$(schaltjahr$,monatb_mk%,,))
                okay_mk% = 0

            endif

        endif

        Prüfe el Monat

        if (okay_mk% = 1)

            if (monat_mk%>12)

                monat_mk% = monat_mk%-12
                jahr_mk% = jahr_mk% + 1
                okay_mk% = 0

            elseif (monat_mk%<1)

                monat_mk% = monat_mk%+12
                jahr_mk% = jahr_mk% - 1
                okay_mk% = 0

            endif

        endif

        Prüfe el Jahr

        if (okay_mk% = 1)

            if (jahr_mk%<1970)

                volver #OUT OF RANGE#

            elseif (jahr_mk%>2099)

                volver #OUT OF RANGE#

            más

                ende_mk% = 0

            endif

        endif

    wend

    Berechne de 1970
    jahr_mk% = @int(jahr_mk% - 1970)
    anzahltage& = jahr_mk% * 365
    El Schaltjahre dazu

    if (monat_mk%>2)

        anzahltage& = anzahltage& + @int((jahr_mk%+2)/4)

    más

        anzahltage& = anzahltage& + @int(((jahr_mk%-1)+2)/4)

    endif

    Der Monat dazu

    if (monat_mk%>1)

        whileloop 1,(monat_mk%-1)

            hilfe$ = @substr$(monatstage$,&bucle,,)
            hilfe_mk% = hilfe$
            anzahltage& = anzahltage& +  hilfe_mk%

        endwhile

    endif

    anzahltage& = anzahltage& + tag_mk% - 1  Der 1. Tag beginnt  con 0 Sekunden
    sekunden& = anzahltage& * 24 * 60 * 60
    sekunden& = sekunden& + (stunde_mk% * 60 * 60)
    sekunden& = sekunden& + (minute_mk% * 60)
    sekunden& = sekunden& + sekunde_mk%
    volver sekunden&

ENDPROC

PROC fdate

    ende% sólo todavía una vez deklarieren
    declarar gesamttage&,wochentag%,ende%,restsekunden&,resttage%,tagimjahr%,woche%,hilfe%,hilfe2%
    declarar jahr%,monat%,tag%,stunde%,minute%,sekunde%,jahr_test%,anzahltage_test&,sekunden_test&
    declarar wochentaglistekurz$,wochentaglistelang$
    declarar monatekurz$,monatelang$,monatstage$,monatstageS$,schaltjahr$,testsekunden&

    if (%PCount = 1)

        Parámetros datestring$
        Sekunden sólo hier deklarieren, así doppelte Deklaration unterbinden
        declarar sekunden&
        sekunden& = now()

    elseif (%PCount = 2)

        Parámetros datestring$,sekunden&

    más

        volver

    endif

    Hacer una Liste de Daten
    wochentaglistekurz$ = So,Mo,Di,Mi,Do,Fr,Sa
    wochentaglistelang$ = Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag
    monatekurz$ = Jan,Feb,Mär,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez
    monatelang$ = Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember
    ; al Zeilenende lejos
    monatstage$ = 31,28,31,30,31,30,31,31,30,31,30,31
    monatstageS$ = 31,29,31,30,31,30,31,31,30,31,30,31
    Als erstes una vez brauche Yo el Anzahl el Tage, para el Wochentag
    Der 1.1.1970 war Wochentag 4 = Donnerstag
    gesamttage& = @int(sekunden& / 86400)
    wochentag% = @int(gesamttage& MOD 7)
    Wochentag en 4 korrigieren, porque si wochentag% = 0 = Sonntag es , es lo eigentlich Donnerstag
    wochentag% = wochentag% + 4

    if (wochentag%>6)

        wochentag% = wochentag% - 7

    endif

    Wenn uno el Tage ha, kann uno ligeramente a el Jahr kommen
    resttage% = gesamttage&
    jahr% = @int(((4*resttage%)/1461) + 1970)
    Vorsicht, el Jahr podría falso ser
    Prüfe el, indem du una Tag vorher el mktime anfragst
    jahr_test% = jahr%
    jahr_test% = @int(jahr_test% - 1970)
    anzahltage_test& = jahr_test% * 365
    El Schaltjahre dazu
    anzahltage_test& = anzahltage_test& + @int(((jahr_test%-1)+2)/4)
    sekunden_test& = anzahltage_test& * 24 * 60 * 60

    if (sekunden_test&>sekunden&)

        Ups, el Jahr es falso
        jahr% = jahr% - 1

    endif

    jahr_test% = jahr%
    jahr_test% = @int(jahr_test% - 1970)
    anzahltage_test& = jahr_test% * 365
    El Schaltjahre dazu
    anzahltage_test& = anzahltage_test& + @int(((jahr_test%-1)+2)/4)
    sekunden_test& = anzahltage_test& * 24 * 60 * 60
     $testsekunden& muss kleiner ser, como sekunden&
    Yo brauche nun el Restsekunden para el Monate
    restsekunden& = sekunden& - sekunden_test&
    resttage% = @int(restsekunden& / (24*60*60))
    tagimjahr% = resttage%  Das Jahr beginnt  con el 1. Tag, no con el 0. Tag
    In welchem Monat liegt dieser Tag
    ende% = 1
    monat% = 1
    schaltjahr$ = monatstage$

    if (jahr% MOD 4 = 0)

        schaltjahr$ = monatstageS$

    endif

    mientras que ende%

        if ((resttage%+1)>@val(@substr$(schaltjahr$,monat%,,)))

            resttage% = resttage% - @val(@substr$(schaltjahr$,monat%,,))
            monat% = monat% + 1

        más

            ende% = 0

        endif

    wend

    tag% = resttage% + 1  Auch hier otra vez, Monat beginnt con Tag 1 y no Tag 0
    restsekunden& = sekunden& - mktime(0,0,0,monat%,tag%,jahr%)
    stunde% = @int(restsekunden& / (60*60))
    restsekunden& = restsekunden& MOD (60*60)
    minute% = @int(restsekunden& / 60)
    restsekunden& = restsekunden& MOD 60
    sekunde% = restsekunden&
    Berechne el Semana
    hilfe% = wochentag%

    if (hilfe%=0)

        hilfe% = 7

    endif

    woche% = @int((tagimjahr% - hilfe% + 7) / 7)
    Wenn wochentag% al 1.1.des Jahres < 5 es, entonces muss korrigiert voluntad
    hilfe2% = 7 - ((tagimjahr% - hilfe% + 7) MOD 7)

    if (hilfe2%=0)

        hilfe2%=7

    endif

    if (hilfe2%<5)

        woche% = woche% + 1

    elseif (woche% = 0)

        woche% = fdate(%W,mktime(0,0,0,12,24,jahr%-1)) + 1

    endif

    Und nun el String sustituir
    datestring$ = @translate$(datestring$,%Y,@str$(jahr%))
    datestring$ = @translate$(datestring$,%y,fdatelong(@val(@Right$(@str$(jahr%),2))))
    datestring$ = @translate$(datestring$,%d,fdatelong(tag%))
    datestring$ = @translate$(datestring$,%j,@str$(tag%))
    datestring$ = @translate$(datestring$,%D,@substr$(wochentaglistekurz$,(wochentag%+1),,))
    datestring$ = @translate$(datestring$,%l,@substr$(wochentaglistelang$,(wochentag%+1),,))
    datestring$ = @translate$(datestring$,%F,@substr$(monatelang$,monat%,,))
    datestring$ = @translate$(datestring$,%G,@str$(stunde%))
    datestring$ = @translate$(datestring$,%H,fdatelong(stunde%))
    datestring$ = @translate$(datestring$,%i,fdatelong(minute%))
    datestring$ = @translate$(datestring$,%m,fdatelong(monat%))
    datestring$ = @translate$(datestring$,%n,@str$(monat%))
    datestring$ = @translate$(datestring$,%M,@substr$(monatekurz$,monat%,,))
    datestring$ = @translate$(datestring$,%s,fdatelong(sekunde%))
    datestring$ = @translate$(datestring$,%t,@substr$(schaltjahr$,monat%,,))
    datestring$ = @translate$(datestring$,%w,@str$(wochentag%))
    datestring$ = @translate$(datestring$,%W,@str$(woche%))
    datestring$ = @translate$(datestring$,%z,@str$(tagimjahr%))
    volver datestring$

ENDPROC


Saludo René
 
Mit XProfan erstellte Freeware findet ihr hier:  [...] 

US World Domination Tour - bombing a country near you...
11.08.2008  
 




Respuesta


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

19.853 Views

Untitledvor 0 min.
Manfred Barei07.12.2024
Erhard Wirth14.06.2024
Sven Bader16.05.2024
H.Brill09.10.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