home *** CD-ROM | disk | FTP | other *** search
-
- /////////////////////\\\\\\\\\\\\\\\\\\\\\\\
- Dokumentation zur FIDO Unit FDATE
- \\\\\\\\\\\\\\\\\\\\\///////////////////////
-
- RELEASE 1.03
- ^^^^^^^^^^^^
-
- =========================================================================
- Autor: Peter Holschbach, 2:2450/660.3 @ FidoNet, Remscheid, 20.06.1994
- =========================================================================
-
- 1. Date :
- -----------
- Die Unit FDATE.PAS stellt Funktionen und Prozeduren zur Verfügung,
- die sich mit der Uhrzeit und dem Datum befassen.
-
- Dies ist eine Low Level Unit. Sie benötigt keinerlei Routinen
- anderer Units, mit Ausnahme der in Turbo Pascals (6.0 oder
- höher) Unit-Library TURBO.TPL enhaltenen Standard-Units.
-
-
- 2. Kurzbeschreibung:
- --------------------
- CDaysOfMonth ......... enthält in zwei Feldern, die Anzahl der
- Tage für einen Monat für ein normales
- und ein Schaltjahr.
- CDayOfWeekAmerican ... enthält die englischen Namen der Wochen-
- tage, abgekürzt mit drei Zeichen.
- CDayOfWeekGerman ..... enthält die deutschen Namen der Wochen-
- tage, abgekürzt mit drei Zeichen.
- CMonthAmerican ....... enthält die englischen Namen der Monate
- abgekürzt auf drei Zeichen.
- CMonthGerman ......... enthält die deutschen Namen der Monate
- abgekürzt auf drei Zeichen.
- DateFormat ........... typisierte Konstante. Dient zur länder-
- speziefischen Anpassung des Erscheinungs-
- bildes des Datums.
- DateSeperator ........ typisierte Konstante. Das angegbene Zeichen
- wird als Trennzeichen, bei der Umwandlung
- eines Datums in eine Zeichenkette,
- verwendet.
- DayDiff .............. berechnet die Anzahl von Tagen, zwischen
- zwei Daten.
- DayNumber ............ berechnet die Tage die seit dem 01.01.0000
- bis zu einem angegbenen Datum vergangen
- sind.
- DayOfWeek ............ gibt den Wochentag zurück. Der Wert kann
- direkt als "Zeiger" in CDayOfWeekXXX
- verwendet werden.
- DayOfYear ............ berechnet den Tag für das übergebene Datum.
- GetCurrentDateString . liefert das aktuelle Datum als Zeichenkette
- zurück. Die typisierten Konstanten
- "DateSeperator" und "DateFormat" werden von
- der Funktion zur Formatierung herangezogen.
- GetDate .............. Ersatz der Funktion aus der Unit DOS.
- Liefert das aktuelle Datum.
- GetDateString ........ liefert ein übergebenes Datum als Zeichen-
- kette zurück (siehe GetCurrentDateString)
- GetCurrentTimeString . liefert die aktuelle Uhrzeit als Zeichen-
- kette zurück. Alle Zahlen werden zweistellig
- mit führender Null ausgegeben. Das Trenn-
- zeichen zwischen den Zahlen wird durch die
- typisierte Konstante "TimeSeperator"
- bestimmt.
- GetTime .............. Ersatz der Funktion aus der Unit DOS.
- Liefert die aktuelle Uhrzeit.
- GetTimeString ........ liefert eine übergebene Uhrzeit als Zeichen-
- kette zurück. Siehe (GetCurrentTimeString)
- GetUnixTime .......... liefert die Unix typische Zeit als Sekunden
- seit dem 01.01.1970
- IsLeapYear ........... prüft ob das angegeben Jahr ein Schaltjahr
- ist.
- TimeSeperator ........ typisierte Konstante. Das angegbene Zeichen
- wird als Trennzeichen, bei der Umwandlung einer
- Uhrzeit in eine Zeichenkette, verwendet.
- ValidDate ........... prüft ein Datum auf sinnvolle Werte.
- WeekOfYear ........... berechnet die Kalenderwoche für das aktuelle
- Datum. Wie im richtigen Leben wird alles vor
- dem ersten Montag des Jahres der letzten
- Kalenderwoche des Vorjahres zugeschlagen.
-
-
- 3. Detaillierte Beschreibung:
- -----------------------------
- ===============================================================
- DayDiff
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 28.06.1994 LETZTE ÄNDERUNG ...
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... bestimmt die Anzahl von Tagen, die
- zwischen zwei Daten liegen.
-
- DEKLARATION ... DayDiff (FYear,FMonth,FDay,
- TYear,TMonth,TDay : Word) : LongInt;
-
- PARAMETER ... FYear - von Jahr (mit Jahrtausend)
- FMonth - von Monat
- FDay - von Tag
- TYear - bis Jahr (mit Jahrtausend)
- TMonth - bis Monat
- TDay - bis Tag
-
- ERGEBNIS ... eine Variable des Typs LONGINT, die
- der Anzahl von Tagen entspricht.
-
- ===============================================================
- DayNumber
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 28.06.1994 LETZTE ÄNDERUNG ... 17.10.1994
-
- MODIFIKATION ... casting auf LONGINT fehlte
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... bestimmt die Anzahl von Tagen, die
- seit dem 01.01.0000 bis zum angegebenen
- Datum vergangen sind.
-
- DEKLARATION ... DayNumber (Year,Month,Day : Word):LongInt;
-
- PARAMETER ... Year - Jahr (mit Jahrtausend)
- Month - Monat
- Day - Tag
-
- ERGEBNIS ... eine Variable des Typs LONGINT, die
- der Anzahl von Tagen entspricht.
-
- ===============================================================
- DayOfWeek
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 28.06.1994 LETZTE ÄNDERUNG ... 17.10.1994
-
- MODIFIKATION ... zurückgegebene Zahl war falsch
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... bestimmt den Wochentag des angegebenen Datums.
-
- DEKLARATION ... DayOfWeek (Year,Month,Day : Word):Byte;
-
- PARAMETER ... Year - Jahr (mit Jahrtausend)
- Month - Monat
- Day - Tag
-
- ERGEBNIS ... eine Variable des Typs BYTE, die als
- "Zeiger" in das Feld CDayOfWeekXXX verwendet
- werden kann. Die Tage werden von Montag = 1
- bis Sonntag = 7 durchnummeriert.
-
- ===============================================================
- DayOfYear
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 28.06.1994 LETZTE ÄNDERUNG ... 28.06.1994
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... berechnet die Anzahl der Tage vom 1.1 bis zum
- übergebenen Datum des Jahres.
-
- DEKLARATION ... Function DayOfYear (Year,Month,Day : Word):Word;
-
- PARAMETER ... Year - Jahr (mit Jahrtausend)
- Month - Monat
- Day - Tag
-
- ERGEBNIS ... eine Variable des Typs WORD, die die Nummer
- des Tages enthält.
-
- ===============================================================
- GetCurrentDateString
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... ermittelt das aktuelle Datum und wandelt es
- in eine Zeichenkette um. Das Aussehen der
- Zeichenkette wird durch die typisierte Konstante
- DateFormat bestimmt. Das Zeichen der typisierten
- Konstante DateSeperator wird zum Trennen der
- einzelnen Einträge verwendet.
-
- DEKLARATION ... Function GetCurrentDateString : String;
-
- PARAMETER ... keine
-
- ERGEBNIS ... eine Variable des Typs STRING, die das Datum
- enthält. Die Zeichenkette hat folgenden Aufbau:
- DateFormat = European
- 'DD.MM.YY'
- DateFormat = American
- 'MM.DD.YY'
- DateFormat = Japanese
- 'YY.MM.DD'
- führende Leerzeichen werden durch Nullen ersetzt.
-
- ===============================================================
- GetDate
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 07.07.1994 LETZTE ÄNDERUNG ... 07.07.1994
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... ermittelt das aktuelle Datum.
-
- DEKLARATION ... Procedure GetDate (Var Year,Month,Day,DayOfWeek
- : Word);
-
- PARAMETER ... Year - Jahr
- Month - Monat
- Day - Tag
- DayOfWeek - Wochentag
-
- ERGEBNIS ... wie die entsprechende Prozedur der Unit DOS
-
- ===============================================================
- GetDateString
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... wandelt das übergebene Datum in eine
- Zeichenkette.
- (siehe GetCurrentDateString)
-
- DEKLARATION ... function GetDateString (Year,Month,Day : Word)
- : String;
-
- PARAMETER ... Year - Jahr (mit oder ohne Jahrtausend)
- Month - Monat
- Day - Tag
-
- ERGEBNIS ... (siehe GetCurrentDateString)
-
- ===============================================================
- GetCurrentTimeString
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... bestimmt die aktuelle Uhrzeit und gibt sie
- als Zeichenkette zurück. Als Trennzeichen
- wird das Zeichen der typisierten Konstanten
- TimeSeperator verwendet.
-
- DEKLARATION ... function GetCurrentTimeString : String;
-
- PARAMETER ... keine
-
- ERGEBNIS ... eine Variable des Typs STRING, die die Uhr-
- zeit enthält. Die Zeichenkette ist wie folgt
- aufgebaut:
- 'hh:mm:ss'
- führende Leerzeichen werden durch eine Null
- ersetzt.
-
-
- ===============================================================
- GetTime
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 07.07.1994 LETZTE ÄNDERUNG ... 07.07.1994
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert die aktuelle Uhrzeit
-
- DEKLARATION ... Procedure GetTime (Var hour,minute,second,
- Sec100:Word);
-
- PARAMETER ... hour - Stunde
- minute - Minute
- second - Sekunde
- Sec100 - 1/100 Sekunden
-
- ERGEBNIS ... wie die entsprechende Prozedur der Unit DOS
-
-
-
- ===============================================================
- GetTimeString
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert die übergebene Uhrzeit als Zeichen-
- kette zurück.
-
- DEKLARATION ... function GetTimeString (hour,minute,second:Word)
- : String;
-
- PARAMETER ... hour - Stunde
- minute - Minute
- second - Sekunde
-
- ERGEBNIS ... siehe GetCurrentTimeString
-
- ===============================================================
- GetUnixTime
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 24.08.1994 LETZTE ÄNDERUNG ...
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... liefert das übergebene Datum und die
- übergebene Uhrzeit im Unix typischen
- Format (als Sekunden seit dem 1.1.1970)
- zurück.
-
- DEKLARATION ... GetUnixTime(Year,Month,Day,Hour,
- Minute,Second : Word) : LongInt;
-
- PARAMETER ... Year - das Jahr (mit Jahrtausend !)
- Month - der Monat
- Day - der Tag
- Hour - die Stunde
- Minute - die Minute
- Second - die Sekunde
-
- ERGEBNIS ... LongInt im Unix-Format
-
- ===============================================================
- IsLeapYear
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 26.06.1994
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... prüft ob das angegebene Jahr ein Schaltjahr
- ist.
-
- DEKLARATION ... function IsLeapYear (Year : Word): Boolean;
-
- PARAMETER ... Year - das Jahr (mit Jahrtausend !)
-
- ERGEBNIS ... TRUE - wenn es ein Schaltjahr ist
-
- ===============================================================
- ValidDate
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 17.10.1994 LETZTE ÄNDERUNG ...
-
- MODIFIKATION ...
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... prüft ob das übergeben Datum sinnvolle
- Daten enthält. Alle Rückgabewerte ungleich
- 0 zeigen einen Fehler an.
- Zuerst wird geprüft ob der Monat im Bereich
- [1..12] liegt, und dann ob der Tag im Bereich
- [1..Tage des Monats] liegt.
-
- DEKLARATION ... function ValidDate (Year,Month,Day : Word):Byte;
-
- PARAMETER ... Year - Jahr mit Jahrtausend
- Month - Monat
- Day - Tag
-
- ERGEBNIS ... 0 = alles OK
- 2 = Fehler bei der Angabe des Monats
- 3 = Fehler bei der Angabe des Tages
-
- ===============================================================
- WeekOfYear
- ---------------------------------------------------------------
- ERSTAUTOR ... Peter Holschbach, 2:2450/660.3 @ FidoNet
-
- ERSTDATUM ... 26.06.1994 LETZTE ÄNDERUNG ... 17.10.1994
-
- MODIFIKATION ... Algorithmus war falsch
- ---------------------------------------------------------------
-
- BESCHREIBUNG ... bestimmt die Kalenderwoche für das übergeben
- Datum. ACHTUNG ! Die erste Kalenderwoche
- beginnt am ersten Montag des Jahres.
-
- DEKLARATION ... function WeekOfYear (Year,Month,Day : Word):Byte;
-
- PARAMETER ... Year - Jahr mit Jahrtausend
- Month - Monat
- Day - Tag
-
- ERGEBNIS ... die Kalenderwoche (1..52)
-
-
- 4. Beispiele:
- -------------
- ===============================================================
- DayOfWeek
- ---------------------------------------------------------------
-
- Writeln (DayOfWeek (1994,3,7)); { ergibt: 1 }
- Writeln (CDayOfWeekGerman[DayOfWeek (1994,7,3)]);{ ergibt: 'Son'}
-
- ===============================================================
- DayOfYear
- ---------------------------------------------------------------
-
- Writeln (DayOfYear (1994,7,3)); {ergibt: 184}
-
- ===============================================================
- GetCurrentDateString
- ---------------------------------------------------------------
-
- Writeln (GetCurrentDateString); {ergibt: '03.07.94'}
- DateFormat := American;
- Writeln (GetCurrentDateString); {ergibt: '07.03.94'}
- DateFormat := European;
- DateSeperator := '/';
- Writeln (GetCurrentDateString); {ergibt: '03/07/94'}
-
- ===============================================================
- GetDateString
- ---------------------------------------------------------------
-
- Writeln (GetDateString (94,7,3)); {ergibt: '03.07.94'}
-
- ( siehe auch GetCurrentDateString )
-
- ===============================================================
- GetCurrentTimeString
- ---------------------------------------------------------------
-
- Writeln (GetCurrentTimeString); {ergibt: '00:05:13'}
- TimeSeperator := '.';
- Writeln (GetCurrentTimeString); {ergibt: '00.05.13'}
-
- ===============================================================
- GetTimeString
- ---------------------------------------------------------------
-
- Writeln (GetTimeString (8,59,59)); {ergibt: '08:59:59'}
-
- (siehe auch GetCurrentTimeString )
-
- ===============================================================
- GetUnixTime
- ---------------------------------------------------------------
-
- Writeln (GetUnixTime (1970,1,1,0,0,1)); {Ergebnis: 1}
- ===============================================================
- IsLeapYear
- ---------------------------------------------------------------
-
- Writeln (IsLeapYear (1994)); {ergibt: FALSE }
-
- ===============================================================
- WeekOfYear
- ---------------------------------------------------------------
-
- Writeln (WeekOfYear (1994,7,3)); {ergibt: 26}
-
- ---------------------------------------------------------------
-
- 5. History:
- -----------
-
- Neuerungen nach Release ...
- ---------------------------
- ... 1.01 - DayDiff Anzahl der Tage zwischen zwei
- Daten.
- - GetDate | Ersatz der Prozeduren aus der
- - GetTime | Unit DOS
- - DayNumber Tage seit dem 01.01.0000
- - CDayOfWeekAmerican war CDayOfWeekAme
- CDayOfWeekGerman war CDayOfWeekGer
-
- ... 1.02 - Kosmetische Änderungen:
- - CDayOfWeekGerman war ein Array of String [10]
- - in DayNumber war ein casting mit longint
- notwendig damit keine Bereichsüberschreitung
- erkannt wird
- - Bugs:
- - DayOfWeek lieferte den falschen Wert zurück
- - WeekOfYear falscher Algorithmus
- - Neu:
- - Funktion ValidDate
- - Funktion GetUnixTime
- ... 1.03 - Neu:
- - Konstanten: CMonthAmerican und CMonthGerman
-
-
- ==========================================================================
-
- /////////////////////\\\\\\\\\\\\\\\\\\\\\\\
- Ende der Dokumentation zur FIDO Unit FDATE
- \\\\\\\\\\\\\\\\\\\\\///////////////////////
-