| |
|
|
Michael Wodrich | [size=18:9a05d71d8c]Kalender-Berechnungen:[/size:9a05d71d8c] (geschrieben en XProfan; muß evtl. una wenig angepaßt voluntad para frühere Versionen)
Lo son sicherlich viele Möglichkeiten para el Verwaltung de Kalenderdaten. Hier voluntad algunos Routinen vorgestellt, el una LongInt-Variable a Speicherung benutzen.
Das dies posible es zeige Yo hier:
2147483647 maximaler positiver LongInt-Valor ..CCYYMMDD el Datum se así gespeichert ..hhmmsscc el Tiempo se así gespeichert
CC...... el Jahrhundert-Angabe (Century) ..YY.... el Jahr ....MM.. el Monat ......DD el Tag
hh...... el Stunde ..mm.... el Minute ....ss.. el Sekunde ......cc el Hundertstel-Sekunde (Centi)
El Profano-internen Datum- y Zeitfunktionen puede hiermit bien ergänzt voluntad.
El folgenden Routinen bauen Datum y Tiempo zusammen: KompilierenMarcaSeparaciónSyntax: KompilierenMarcaSeparaciónDatum& = MakeFullDate(Tag&,Monat&,Jahr&) z.B.: dat& = MakeFullDate(4,6,2004)
Datum& = MakeDate(Tag&,Monat&,Jahrhundert&,Jahr&) z.B.: dat& = MakeDate(4,6,20,04)
Zeit& = MakeTime(Stunde&,Minute&,Sekunde&,Hundertstel&) z.B.: tim& = MakeTime(23,30,0,40)re> Zerlegen des Datums en seine Einzelteile (Parámetro es el LongInt-Datum): KompilierenMarcaSeparaciónZerlegen el Tiempo en ihre Einzelteile (Parámetro es el LongInt-Valor): KompilierenMarcaSeparaciónDatum- y Tiempo-Vergleiche: (d1 - Datum des 1. Wertes) (t1 - Tiempo des 1. Wertes) (d2 - Datum des 2. Wertes) (t2 - Tiempo des 2. Wertes) KompilierenMarcaSeparaciónDef Time_EQ(d1,t1,d2,t2) (@&(1) = @&(3)) and (@&(2) = @&(4))
Def Time_GE(d1,t1,d2,t2) (@&(1) > @&(3)) or ((@&(1) = @&(3)) and (@&(2) >= @&(4)))
Def Time_GT(d1,t1,d2,t2) (@&(1) > @&(3)) or ((@&(1) = @&(3)) and (@&(2) > @&(4)))
Def Time_LE(d1,t1,d2,t2) (@&(1) < @&(3)) or ((@&(1) = @&(3)) and (@&(2) <= @&(4)))
Def Time_LT(d1,t1,d2,t2) (@&(1) < @&(3)) or ((@&(1) = @&(3)) and (@&(2) < @&(4)))
Def Time_NEQ(d1,t1,d2,t2) (@&(1) <> @&(3)) or (@&(2) <> @&(4)) Das aktuelle Datum serviert Profano ya mundgerecht: KompilierenMarcaSeparaciónEn aktuellen Tiempo muß uno ya una wenig mehr nachhelfen: KompilierenMarcaSeparaciónIst el angegebene Jahr una Schaltjahr? Lo voluntad auch Jahre antes Kalenderreform korrekt geprüft: KompilierenMarcaSeparaciónErmittelt el Wochentag: KompilierenMarcaSeparación MfG Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 05.06.2004 ▲ |
|
|
|
|
| Spitze!, wir kriege Yo después de el Principio una Datums-Distance hin, welche el número el Jahre,Monate,Tage zwischen zwei Datumsangaben zurückliefert? |
|
|
| |
|
|
|
Michael Wodrich | por Umrechnung en el Julianische Tageszahl. El es eigentlich una Float-Zahl. Yo quería el Ganze en LongInt behalten, aber como es el Wurm drin. Tiempo sehen, Yo poste lo al Nachmittag veces. Jetzt tener Yo desafortunadamente no Streichhölzer mehr, a Augen aufzuhalten...
a entonces Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 07.06.2004 ▲ |
|
|
|
|
Sven Bader | Yo voluntad eigentlich auch sólo el Distanz zweiter Daten Tal vez el para jemanden interessant, el número el Tage uno Monats, Schaltjahrprüfung para Februar es auch esta.
Def Tage(2) int(28+val(mid$(303232332323,&(1),1))+if((&(1)=2) & (&(2) MOD 4 = 0),1,0))
Aufruf: imprimir Tage(02,2004) Edición: 29 Februar 2004 hatte 29 Tage |
|
|
| |
|
|