Rechnen mit Datum in [BMax] [BB] [B3D]
Übersicht

![]() |
MidimasterBetreff: Rechnen mit Datum in [BMax] [BB] [B3D] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier eine sehr schlanke Funktion, um ein Datum wie einen Integer-Wert behandeln zu können. Damit ist es sehr leicht möglich im Kalender zu rechnen.
Der Code besteht aus 3 Funktionen BlitzMax: [AUSKLAPPEN] TimeStamp%(Datum$)...rechnet beliebiges Datum in einen Integer-Wert um. Der Wert entspricht der Anzahl der Tage seit 4.1.0000 BlitzMax: [AUSKLAPPEN] MakeDate$(TimeStamp%)...rechnet den Integer-Wert in ein Datum zurück. Zurückgegebenes Format : DD.MM.JJJJ Mit den beiden Funktion ist es möglich, Tage zu Datum-Strings zu addieren. Die Funktionen arbeiten mit allen Datum-Angaben ab dem Jahr "100 n Chr" Beispiele: Wieviele Tage liegen zwischen Weihnachten und Valentinstag? BlitzMax: [AUSKLAPPEN] Print TimeStamp("14.2.10") - TimeStamp("24.12.09") ) Welches Datum war 100 Tage nach dem 1.Aug.1567? BlitzMax: [AUSKLAPPEN] Print MakeDate( TimeStamp("1 Aug 1567") + 100 ) Welches Datum war heute vor 60 Tagen? BlitzMax: [AUSKLAPPEN] Print MakeDate( TimeStamp(CurrentDate()) - 60 ) Welcher Wochentag ist heute (Mo=0, Di=1,...)? BlitzMax: [AUSKLAPPEN] Print( TimeStamp(CurrentDate()) Mod 7 ) Timestamp akzeptiert dabei mehrere Datumsformate: Trennzeichen kann <.> </> oder <SPACE> sein: Zitat: " 23.12.2067"
"14 aug 68" "26/12/1788" aber die Reihenfolge immer D->M->J Die Werte werden ein oder zweistellig akzeptiert Zitat: 1.1.2010
01.1.2010 1.01.2010 1.1.10 Das Jahr wird auch zweistellig akzeptiert, dann als Zeitraum zwischen 1950 und 2049 interpretiert: Zitat: "1" bis "49" -> "2001" bis "2049"
"50" bis "99" -> "1950" bis "1999" Der Monat wird als Zahl oder Wort in english oder deutsch jeweils auch als Abkürzung akzeptiert: Zitat: "1/1/10"
"1.Jan.10" "1 Januar 2010" Die Funktion BlitzMax: [AUSKLAPPEN] ReformDate$(Date$) ....wird intern benötigt, kann aber auch benutzt werden, ein Datum in die Form DD.MM.JJJJ zu bringen: Zitat: "1 Jan 10" -> "01.01.2010"
BlitzMax: [AUSKLAPPEN] ;'SuperStrict |
||
- Zuletzt bearbeitet von Midimaster am Do, März 18, 2010 20:56, insgesamt 6-mal bearbeitet
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: "1 Jan 10" -> "10.10.2010"
Wenn dein Interpreter das ausgepuckt hat, solltest du ihn noch mal überarbeiten ![]() |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo skey-z
also bei mir kommt auf... BlitzMax: [AUSKLAPPEN] Print ReformDate$("1 Jan 10") als Ergebnis ein korrektes: Zitat: 01.01.2010
Bitte schreib mir dringend, wie die Simulation dieses Fehlers gelingt, damit ich es gleich ändern kann!!! Ah ,jetzt seh ich es: Du meinst nur den Tippfehler im Posting! Der Code arbeitet also einwandfrei! [EDIT] auf Version 1.01 verbessert (am 16.03.2010 13:57) Datums jetzt ab Basiswert "4.1.0000" statt "1.1.0000", so ergeben sich aus TimeStamp() Mod 7 immer die Wochentage Mo=0, Di=1,... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group