Comprend | | | | - page 1 - |
|  Clemens Meier | allô zusammen,
je benutze XProfan seulement wieder depuis un paire Tagen, um pour une ami un Geburtstagsgeschenk trop bricoler. Dabei fiel mir sur, dass dans XProfan si bien comment aucun date- et Uhrzeitfunktionen pour trouver sommes. on bekommt zwar cela aktuelle date et qui aktuelle l'heure, doch cela était es déjà. rien avec berechnen, comparer ou bien ähnliches. et là je aussi encore un begeisterter PHPler suis, qui Dinge comment date et mktime kennt, habe je la fois tour gesetzt et beides pour XProfan comme include-Dossier realisiert.
j'ai allerdings un paire Stunden gebraucht, weil beim Testen spezieller Sonderfälle toujours wieder kleinere Probleme auftauchten, qui hoffentlich eh bien alle beseitigt sommes.
Gültigkeitsbereich: 1970 jusqu'à 2099 Sommerzeit et GMT wird pas berücksichtigt (wäre seulement important, si on sur den calculateur hinaus Zeiten comparer muss)
Angaben de Monats- et Wochentagsnamen sommes dans allemande. Wochennummern pour ISO (ächz, était pas léger). et naturellement peux on dedans qui mktime - Funktion aussi le calcul et qui Funktion übernimmt qui Correction qui données (Beispiel siehe beiliegender datumuhrzeit.prf). Weiteres siehe hinweis.txt dans qui Zip-Dossier.
je hoffe, es peux gebraucht volonté et je suis mich sur un Feedback
Salut
Clemens |
 | | | | |
| | | | | - page 1 - |
|  | oui, im deutschen le calendrier beginnt la première semaine avec qui semaine trop zählen, qui mindestens 4 Tage hat. par cet Verschieberei peux es dans einem l'an sogar 53 Wochen donner - es doit alors aussi cela Vorjahr avec beachtet volonté, si le erste semaine pas chez 1 beginnt (Entscheidung: 52. od. 53. semaine des Vorjahres).
[quote-part:0bf01e8fa7=Clemens Meier]et là je aussi encore un begeisterter PHPler suis[/quote-part:0bf01e8fa7] ensuite exposition Dir aussi la fois cela Codesnippet unix time PHP à.
Ansätze pour date et Zeitberechnungen findest Du sur qui Suchfunktion, es donnais là déjà quelques Sachen.
peut-être entsteht oui doch encore la fois un kompletter phrase à date-/Zeitroutinen.
belle Grüße Michael Wodrich |
| | | | |
| |  Jac de Lad | allez prima, hab jusqu'à maintenant aucun faute entdecken peut.
@Frank: là hätte je Parcival alors aussi im Wettbewerb posten peut??? allez cela maintenant aussi encore, quoique je déjà so viel hin- et hergepostet hab???
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 | bien sûr, Jac. Wüsste pas, quoi dagegen parler sollte.  |
| | | | |
| |  ByteAttack | bof! je sais maintenant vraie pas woran es liegt, mais qui Include hängt sich sur, sobald qui 31.12.2007 ins Spiel venez. s'il te plaît la fois essayer:
$I date.inc
Déclarer mois%,journée%,l'an%,temp$
Fenêtre Style 26
Titre de la fenêtre date.inc Test
Fenêtre 0,0-%maxx,%maxY
Erster Test
monat%=12
tag%=31
jahr%=2008
temp$=un journée später comme qui +str$(journée%)+.+Str$(mois%)+.+Str$(l'an%)+ ist qui:
imprimer temp$+Ins$(.,Ins$(.,fdate(%d%m%Y,mktime(0,0,0,mois%,journée%+1,l'an%)),3),6) +1journée
Zweiter Test
jahr%=2007
temp$=un journée später comme qui +str$(journée%)+.+Str$(mois%)+.+Str$(l'an%)+ ist qui:
imprimer temp$+Ins$(.,Ins$(.,fdate(%d%m%Y,mktime(0,0,0,mois%,journée%+1,l'an%)),3),6) +1journée
waitmouse
|
| | | | |
| |  GDL | Gültigkeitsbereich: 1970 jusqu'à 2099
Sniff, suis aba 61 née.
salut Georg |
| | | | |
| |  Dieter Zornow | chez mir stimmt einiges pas beim Test z.B. jetziges date et l'heure avant 100 Stunden venez chez mir 01.01.1970 00.00:00, cela Beispiel de Marc ist aussi daneben.
Salut aus 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 | bof, je crois avec qui MWDATE.DLL ist on besser tour. (allez bloß malheureusement seulement sous Profan ab Version 10) |
| | | | |
| |  Michael Wodrich | Marc-Gordon
bof, je crois avec qui MWDATE.DLL ist on besser tour. (allez bloß malheureusement seulement sous Profan ab Version 10)
ensuite doit je mich là wohl doch encore la fois dransetzen?
qui Includedatei peux so angepasst volonté, cela aussi frühere Versionen avec cela bien sûr venons (ensuite tomber quelques dans qui Include programmierte Dinge weg; ou bien volonté umgeschrieben).
je werds mir nochmal dans qui ToDo-liste mettons...
belle Grüße Michael Wodrich
P.S.: qui DLL commence chez 1600 à (à cause de Schaltjahr-Gedöns). je personnelle kenne keinen plus personnelle, qui auparavant née wurde.  |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 31.10.2007 ▲ |
| |
| | | | - page 2 - |
| |  Frank Abbing |
P.S.: qui DLL commence chez 1600 à (à cause de Schaltjahr-Gedöns). je personnelle kenne keinen plus personnelle, qui auparavant née wurde.
[web]https://de.wikipedia.org/wiki/Gregorianischer_Kalender[/web] |
| | | | |
| |  | Frank Abbing
Frank AbbingP.S.: qui DLL commence chez 1600 à (à cause de Schaltjahr-Gedöns). je personnelle kenne keinen plus personnelle, qui auparavant née wurde. [web]https://de.wikipedia.org/wiki/Gregorianischer_Kalender[/web]
quoi hat cela une avec dem Anderen trop 1faire?  |
| | | | |
| |  Michael Wodrich | cela était un Wink avec dem Zaunpfahl.
cela Schaltjahr-Gedöns était un richtige Kalenderreform - un Krimi: pape Gregor stiehlt qui ganzen monde 10 Tage.
Den Link J'ai eu incidemment encore pas dans meiner recueil - doit droite récente son. Allerdings ist chez Wikipedia ortelius.de pas comme Link aufgeführt - avec cela fehlt là sans équivoque quelque chose.
belle Grüße Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 31.10.2007 ▲ |
| |
| |  René Wagner | Moin,
là je dans mon aktuellen projet avec cette INC arbeite, musste je zwangsläufig un paire kleinere Korrekturen vornehmen. chez qui Monatstag-définition étions ; am Ende, cela klappt peut-être avec PHP, mais pas avec XProfan. 
Ausserdem wurde dans fdate quelques Variablen doppelt deklariert. Nachfolgend qui korrigierte INC-Code.
PROC isdate
parameters mois%,journée%,l'an%
declare string$,check$
string$ = @str$(journée%)+.+@str$(mois%)+.+@str$(l'an%)
si (l'an%>1000)
check$ = %Y
d'autre
check$ = %y
endif
si (string$ = fdate(%j.%n.+check$,mktime(0,0,0,mois%,journée%,l'an%)))
return 1
d'autre
return 0
endif
ENDPROC
PROC now
declare string$,help$,l'an%,mois%,journée%,heure%,minute%,seconde%
string$ = @time$(0)+:+@substr$(@time$(1),1,.)
help$ = @substr$(string$,1,:)
heure% = help$
help$ = @substr$(string$,2,:)
minute% = help$
help$ = @substr$(string$,3,:)
seconde% = help$
string$ = date$(3)
help$ = @mid$(string$,1,4)
l'an% = help$
help$ = @mid$(string$,5,2)
mois% = help$
help$ = @mid$(string$,7,2)
journée% = help$
return mktime(heure%,minute%,seconde%,mois%,journée%,l'an%)
ENDPROC
PROC fdatelong
parameters numéro%
declare numéro$
numéro$ = numéro%
si (numéro%<10)
numéro$ = 0+@str$(numéro%)
endif
return numéro$
ENDPROC
PROC mktime
parameters stunde_mk%,minute_mk%,sekunde_mk%,monat_mk%,tag_mk%,jahr_mk%
declare sekunden&,anzahltage&,monatstage$,monatstageS$,hilfe_mk%,hilfe$,ende_mk%,okay_mk%,schaltjahr$,monatb_mk%
; am Zeilenende entfernt
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 ici ggf. cela date
ende_mk% = 2
tandis que ende_mk%
okay_mk% = 1
Prüfe qui Sekunden
si (okay_mk% = 1)
si (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 qui Minuten
si (okay_mk% = 1)
si (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 qui Stunden
si (okay_mk% = 1)
si (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 den journée
si (okay_mk% = 1)
schaltjahr$ = monatstage$
si ((jahr_mk% MOD 4) = 0)
schaltjahr$ = monatstageS$
endif
si (monat_mk%<1)
monatb_mk% = ((monat_mk% - 1) MOD 12) + 13
d'autre
monatb_mk% = ((monat_mk% - 1) MOD 12) + 1
endif
si (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
si (monat_mk%<1)
monatb_mk% = ((monat_mk% - 1) MOD 12) + 13
d'autre
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 den mois
si (okay_mk% = 1)
si (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 cela l'an
si (okay_mk% = 1)
si (jahr_mk%<1970)
return #OUT OF RANGE#
elseif (jahr_mk%>2099)
return #OUT OF RANGE#
d'autre
ende_mk% = 0
endif
endif
Wend
Berechne ab 1970
jahr_mk% = @int(jahr_mk% - 1970)
anzahltage& = jahr_mk% * 365
qui Schaltjahre en supplément
si (monat_mk%>2)
anzahltage& = anzahltage& + @int((jahr_mk%+2)/4)
d'autre
anzahltage& = anzahltage& + @int(((jahr_mk%-1)+2)/4)
endif
qui mois en supplément
si (monat_mk%>1)
whileloop 1,(monat_mk%-1)
hilfe$ = @substr$(monatstage$,&loop,,)
hilfe_mk% = hilfe$
anzahltage& = anzahltage& + hilfe_mk%
endwhile
endif
anzahltage& = anzahltage& + tag_mk% - 1 qui 1. journée beginnt oui avec 0 Sekunden
sekunden& = anzahltage& * 24 * 60 * 60
sekunden& = sekunden& + (stunde_mk% * 60 * 60)
sekunden& = sekunden& + (minute_mk% * 60)
sekunden& = sekunden& + sekunde_mk%
return sekunden&
ENDPROC
PROC fdate
ende% seulement encore einmal déclarer
declare gesamttage&,wochentag%,ende%,restsekunden&,resttage%,tagimjahr%,semaine%,hilfe%,hilfe2%
declare l'an%,mois%,journée%,heure%,minute%,seconde%,jahr_test%,anzahltage_test&,sekunden_test&
declare wochentaglistekurz$,wochentaglistelang$
declare monatekurz$,monatelang$,monatstage$,monatstageS$,schaltjahr$,testsekunden&
si (%PCount = 1)
Paramètres datestring$
Sekunden seulement ici déclarer, avec cela doppelte Deklaration unterbinden
declare sekunden&
sekunden& = now()
elseif (%PCount = 2)
Paramètres datestring$,sekunden&
d'autre
return
endif
Faire une liste de données
wochentaglistekurz$ = So,Mo,Di,Mi,Do,Fr,Sa
wochentaglistelang$ = dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi
monatekurz$ = Jan,Feb,Mär,Apr,mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez
monatelang$ = janvier,février,Mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre
; am Zeilenende entfernt
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
comme erstes einmal brauche je qui Anzahl qui Tage, pour den Wochentag
qui 1.1.1970 était Wochentag 4 = jeudi
gesamttage& = @int(sekunden& / 86400)
wochentag% = @int(gesamttage& MOD 7)
Wochentag um 4 korrigieren, car si wochentag% = 0 = dimanche ist , ist es eigentlich jeudi
wochentag% = wochentag% + 4
si (wochentag%>6)
wochentag% = wochentag% - 7
endif
si on qui Tage hat, peux on léger à cela l'an venons
resttage% = gesamttage&
l'an% = @int(((4*resttage%)/1461) + 1970)
attention, cela l'an pourrait faux son
Prüfe cela, indem du une journée auparavant qui mktime anfragst
jahr_test% = l'an%
jahr_test% = @int(jahr_test% - 1970)
anzahltage_test& = jahr_test% * 365
qui Schaltjahre en supplément
anzahltage_test& = anzahltage_test& + @int(((jahr_test%-1)+2)/4)
sekunden_test& = anzahltage_test& * 24 * 60 * 60
si (sekunden_test&>sekunden&)
Ups, cela l'an ist faux
l'an% = l'an% - 1
endif
jahr_test% = l'an%
jahr_test% = @int(jahr_test% - 1970)
anzahltage_test& = jahr_test% * 365
qui Schaltjahre en supplément
anzahltage_test& = anzahltage_test& + @int(((jahr_test%-1)+2)/4)
sekunden_test& = anzahltage_test& * 24 * 60 * 60
$testsekunden& muss kleiner son, comme sekunden&
je brauche eh bien qui Restsekunden pour qui Monate
restsekunden& = sekunden& - sekunden_test&
resttage% = @int(restsekunden& / (24*60*60))
tagimjahr% = resttage% cela l'an beginnt oui avec dem 1. journée, pas avec dem 0. journée
dans welchem mois liegt cette journée
ende% = 1
mois% = 1
schaltjahr$ = monatstage$
si (l'an% MOD 4 = 0)
schaltjahr$ = monatstageS$
endif
tandis que ende%
si ((resttage%+1)>@val(@substr$(schaltjahr$,mois%,,)))
resttage% = resttage% - @val(@substr$(schaltjahr$,mois%,,))
mois% = mois% + 1
d'autre
ende% = 0
endif
Wend
journée% = resttage% + 1 aussi ici wieder, mois beginnt avec journée 1 et pas journée 0
restsekunden& = sekunden& - mktime(0,0,0,mois%,journée%,l'an%)
heure% = @int(restsekunden& / (60*60))
restsekunden& = restsekunden& MOD (60*60)
minute% = @int(restsekunden& / 60)
restsekunden& = restsekunden& MOD 60
seconde% = restsekunden&
Berechne qui semaine
hilfe% = wochentag%
si (hilfe%=0)
hilfe% = 7
endif
semaine% = @int((tagimjahr% - hilfe% + 7) / 7)
si wochentag% am 1.1.des Jahres < 5 ist, ensuite muss korrigiert volonté
hilfe2% = 7 - ((tagimjahr% - hilfe% + 7) MOD 7)
si (hilfe2%=0)
hilfe2%=7
endif
si (hilfe2%<5)
semaine% = semaine% + 1
elseif (semaine% = 0)
semaine% = fdate(%W,mktime(0,0,0,12,24,l'an%-1)) + 1
endif
et eh bien den String ersetzen
datestring$ = @translate$(datestring$,%Y,@str$(l'an%))
datestring$ = @translate$(datestring$,%y,fdatelong(@val(@Right$(@str$(l'an%),2))))
datestring$ = @translate$(datestring$,%d,fdatelong(journée%))
datestring$ = @translate$(datestring$,%j,@str$(journée%))
datestring$ = @translate$(datestring$,%D,@substr$(wochentaglistekurz$,(wochentag%+1),,))
datestring$ = @translate$(datestring$,%l,@substr$(wochentaglistelang$,(wochentag%+1),,))
datestring$ = @translate$(datestring$,%F,@substr$(monatelang$,mois%,,))
datestring$ = @translate$(datestring$,%G,@str$(heure%))
datestring$ = @translate$(datestring$,%H,fdatelong(heure%))
datestring$ = @translate$(datestring$,%i,fdatelong(minute%))
datestring$ = @translate$(datestring$,%m,fdatelong(mois%))
datestring$ = @translate$(datestring$,%n,@str$(mois%))
datestring$ = @translate$(datestring$,%M,@substr$(monatekurz$,mois%,,))
datestring$ = @translate$(datestring$,%s,fdatelong(seconde%))
datestring$ = @translate$(datestring$,%t,@substr$(schaltjahr$,mois%,,))
datestring$ = @translate$(datestring$,%w,@str$(wochentag%))
datestring$ = @translate$(datestring$,%W,@str$(semaine%))
datestring$ = @translate$(datestring$,%z,@str$(tagimjahr%))
return datestring$
ENDPROC
Salut René |
| | | Mit XProfan erstellte Freeware findet ihr hier: [...] US World Domination Tour - bombing a country near you... | 11.08.2008 ▲ |
| |
|
répondreOptions du sujet | 19.868 Views |
Themeninformationencet Thema hat 10 participant: |