Incluye | | | | - 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 |
 | | | | |
| | | | | - 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 |
| | | | |
| |  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.  |
| | | | |
| |  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
|
| | | | |
| |  GDL | Gültigkeitsbereich: 1970 a 2099
Sniff, bin aba 61 geboren.
Servus Georg |
| | | | |
| |  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 |
| | | 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) |
| | | | |
| |  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] |
| | | | |
| |  | Frank Abbing
Frank AbbingP.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?  |
| | | | |
| |  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 sí 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 sí 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 ▲ |
| |
|
RespuestaTema opciones | 19.853 Views |
ThemeninformationenDieses Thema ha 10 subscriber: |