home *** CD-ROM | disk | FTP | other *** search
-
- /* $VER: ADMGeburtstag.rexx 1.3 (26.01.94)
-
- Sucht alle Einträge, bei denen in maximal "Tage" Tagen Geburtstag ist,
- und zeigt diese per Requester an.
- Ideal geeignet für den Tooltype/Shellparameter STARTUP.
-
- Autoren:
-
- von André Schenk
- andre@melior.stgt.sub.org
- 2:2407/106.42@fidonet
-
- erweitert von
- Jan Geißler
- jan@digit.stgt.sub.org
- 2:2407/106.5@fidonet
-
- erweitert von
- Bruno Rudolf, Offenbach
-
- History:
-
- V1.0 14.10.93 [as] - Erste Version
- V1.1 18.10.93 [jan] - Ext. Programm "Request" durch RexxReqTools.lib ersetzt.
- - DisplayBeep am Ende der Suche vermieden.
- - Im Requester wird "heute, morgen, übermorgen" anstatt
- des Datums angezeigt.
- - Errechnet nun, wie alt derjenige wird.
- V1.2 27.12.93 [jan] - "Arithmetic Conversion Error" bei Geburtstag ohne Jahr
- entfernt.
- V1.3 26.01.94 [jan] - Temporäre Datei wird nun gelöscht
- V1.4 16.05.94 [BrR] - Fehler in der Anzeige des Geburtstags behoben.
-
- */
-
- Tage = 3 /* 3 Tage vor Geburtstag warnen! */
-
- OPTIONS RESULTS
-
- CALL ADDLIB("rexxreqtools.library", 0, -30, 0)
- NL = '0a'x
-
- ADDRINMEM
- Max = RESULT
-
- ACTIVATEFIRST
-
- Zeit = DATE("Internal") /* aktuelles Datum */
- Datum = DATE("Days", Zeit, "Internal") /* vergangene Tage dieses Jahres */
- Jahr = SUBSTR(DATE("Sorted", Zeit, "Internal"), 1, 4)
-
- DO Index = 1 TO Max
- GETADDRESS Datensatz
-
- IF Datensatz.BIRTHDAY ~= "" THEN DO
- Geburtsdatum = Datensatz.BIRTHDAY
- Geburtsdatum = TRANSLATE(Geburtsdatum, "/", ".")
- Geburtsdatum = TRANSLATE(Geburtsdatum, "/", "-")
- Tag = SUBSTR(Geburtsdatum, 1, POS("/", Geburtsdatum) - 1)
- IF LENGTH(Tag) = 1 THEN Tag = INSERT("0", Tag)
- Monat = DELSTR(Geburtsdatum, POS("/", Geburtsdatum, 4))
- Monat = SUBSTR(Monat, POS("/", Geburtsdatum) + 1)
- GebJahr = SUBSTR(Geburtsdatum, POS("/", Geburtsdatum, 4))
- IF LENGTH(GebJahr) > 2 THEN GebJahr = DELSTR(GebJahr,1,LENGTH(GebJahr)-2)
- GebJahr= INSERT("19",GebJahr)
-
- IF (LENGTH(Geburtsdatum) > (LENGTH(Tag) + LENGTH(Monat) + 2)) THEN
- Alter = Jahr - GebJahr
- IF Alter < 1 THEN
- Alter = Jahr - GebJahr + 100
-
- IF (LENGTH(Geburtsdatum) <= (LENGTH(Tag) + LENGTH(Monat) + 2)) THEN
- Alter = "?"
-
- IF LENGTH(Monat) = 1 THEN Monat = INSERT("0", Monat)
- Geburtsdatum = Jahr || Monat || Tag
- Geburtsdatum = DATE("Days", Geburtsdatum, "Sorted")
-
- diff = Geburtsdatum - Datum
-
- IF diff >= 0 & diff <= Tage THEN DO
-
- SELECT
- WHEN Datensatz.SALUTATION = "Herrn" THEN Anrede = " seinen"
- WHEN Datensatz.SALUTATION = "Frau" THEN Anrede = " ihren"
- OTHERWISE Anrede = " den"
- END
-
- IF Monat = 01 THEN month = "Januar"
- IF Monat = 02 THEN month = "Februar"
- IF Monat = 03 THEN month = "März"
- IF Monat = 04 THEN month = "April"
- IF Monat = 05 THEN month = "Mai"
- IF Monat = 06 THEN month = "Juni"
- IF Monat = 07 THEN month = "Juli"
- IF Monat = 08 THEN month = "August"
- IF Monat = 09 THEN month = "September"
- IF Monat = 10 THEN month = "Oktober"
- IF Monat = 11 THEN month = "November"
- IF Monat = 12 THEN month = "Dezember"
- IF Tag = 01 THEN day = 1
- day = Tag
- IF Tag = 02 THEN day = 2
- IF Tag = 03 THEN day = 3
- IF Tag = 04 THEN day = 4
- IF Tag = 05 THEN day = 5
- IF Tag = 06 THEN day = 6
- IF Tag = 07 THEN day = 7
- IF Tag = 08 THEN day = 8
- IF Tag = 09 THEN day = 9
-
- SELECT
- WHEN diff = 0 THEN Text = "HEUTE"
- WHEN diff = 1 THEN Text = "morgen"
- WHEN diff = 2 THEN Text = "übermorgen"
- OTHERWISE Text = "am" day || ". " || month
- END
-
- IF Alter = "?" THEN
- Text = Datensatz.FIRSTNAME || " " || Datensatz.LASTNAME || " hat" Text || NL || " Geburtstag!"
- ELSE
- Text = Datensatz.FIRSTNAME || " " || Datensatz.LASTNAME || " hat" Text || NL || Anrede Alter || ". Geburtstag!"
-
- ans = RTEZREQUEST(Text,"_OK","Geburtstagshinweis: ",,"rtez_defaultresponse=1")
-
- /* ADDRESS COMMAND 'Run <NIL: >NIL: Request 'Text' TITLE = "ADMGeburtstag.rexx"' */
- END
- END
- IF Index ~= Max THEN ACTIVATENEXT
- END
-