kalender.opl copyright (c) 1997 by Juergen Galupki 53757 Sankt Augustin GERMANY http://galupki.de ----------------------------------------------- ...add/show entrys for Psion-Agenda. Its designed for use with the Psion Siena, and is written in GERMAN. It calculates days dependent from easter etc. - besides it calculates the phases of the moon. Please take a look at the following rules of using the program (in GERMAN). ----------------------------------------------- Dieses Programm ist Freeware, die nachfolgenden Nutzungsbedingungen sind jedoch zu beachten. Die Benutzung des Programmes geschieht auf eigene Gefahr; ich uebernehme keine Haftung fuer Datenverluste oder sonstige Schaeden, die durch den Gebrauch dieses Programmes entstehen (Haftungsausschluß nach §1 Abs.2 Z.3 ProdHaftG). Weitergabe des Programmes ist nur unentgeltlich zusammen mit dieser Textdatei erlaubt. Software-Händler, die mein Programm (ggf. zusammen mit anderen, z.B. auf Diskette oder CD-ROM) vertreiben, müssen mich darüber unterrichten und mir ein unentgeltliches Exemplar des Mediums ueberlassen. Falls Sie mich nicht über den Vertrieb meines Programmes informieren, behalte ich mir vor, Ihnen die Vertriebsrechte zu entziehen. Nutzung von einzelnen Teilen des Programmes in Ihren eigenen Programmen ist erlaubt, nett waere natuerlich dann eine Quellenangabe. Wenn Ihnen dieses Programm gefaellt und Sie es nutzen, senden Sie mir doch eine Postkarte zu. Kalender.opl hat seinen Ursprung in einem Modula-2- DOS-Programm, dass ich 1989 begonnen hatte (dieses Programm ist ueber meine Homepage zu erreichen, auch Freeware). Einige der Algorithmen habe ich im Oktober 1997 in meinen neuen Siena uebertragen und um die Moeglichkeit ergaenzt, Agendadateien fortzuschreiben. Da es mein erstes OPL-Programm ist (nach "Hello, world"), sind wahrscheinlich nicht alle Sachen sonderlich OPL/EPOC-like optimiert geloest, aber es scheint zu laufen... Das ZIP-File enthaelt auch einen Excel-Kalender (Halbjahresuebersichten und einzelne Monate mit Feiertagen und Termineintraegen) --------------------------------------------- kalender.opl ...ist ein Tool, um eine Psion-Agendadatei um Eintraege zu ergaenzen, die innerhalb von Agenda nicht automatisiert erzeugt bzw. regelmaessig angezeigt werden koennen. Wahlweise koennen die berechneten Daten (jeweils fuer ein Kalenderjahr) aber auch nur angezeigt werden. Das Programm laeuft auf einem Psion Siena, es wird wohl auch auf einem 3c oder 3a laufen; habe ich aber nicht getestet. Getestet ist es im uebrigen recht wenig, ich habe nur ein paar "Jahre" mit anderen Kalendern verglichen (aber da wuerde ich nicht viel drum geben, da ich die auch programmiert hatte...). Es ermittelt: 1. "Feiertage" 1.1. ...abhaengig von Ostern (Typ "O") Ostern, Pfingsten, Karneval... 1.2. ...naechster Mo..So ab einem Datum (Typ "D") Buss- und Bettag, Advent... 1.3. ...1.-4./letzter Mo..So in einem Monat (Typ "W") Erntedank, Zeitumstellung... 1.4. ... fixes Datum Tag.Monat. (Typ "F") Neujahr, Maifeiertag... Im Anschluss an die Ausgabe der Jahres- feiertage wird eine Uebersicht ueber die Arbeitstage je Kalendermonat/Summe Jahr angezeigt. Dabei wird von einer 5-Tage- Woche (Mo..Fr) ausgegangen. Denkbar waere hier eine Abfrage der Werktage aus der Zeit-Applikation... Fuer Schichtdienstler oder ueberhaupt Leute mit wechselnden Arbeitszeitmodellen / freien Tagen ist die Funktion natuerlich gar nicht zu gebrauchen. Ich empfehle dann den Einsatz von SAP R/3, Modul HR; aber soweit ich weiss, gibt es noch keine Adaption fuer die Plattform PSION/EPOC ;-))) Termine vom Typ 1.3. und 1.4. kann AGENDA schon von Haus aus verwalten. Ich habe dieses Feature nur der Vollstaendigkeit halber implementiert (damit die Ermittlung der Arbeitstage/Monat sinnvoll wird). Daher gibt es auch eine Moeglichkeit in meinem Programm, bestimmte Termine zwar zu berechnen und anzuzeigen, aber dann nicht in die Agendadatei zu uebertragen. In der Statistik aber wuerden solche "Feiertage" dann doch beruecksichtigt. Derartige Tage haben im Feld LAYOUT dann keinen Eintrag. Die (Feier-)tage selbst werden in einer kleinen DBF (Datenbank) Datei bestimmt. Eine solche Datei wird mitgeliefert und ist je nach den Gegebenheiten anzupassen. Die einzelnen Felder: TEXT: Bezeichnung des (Feier-)Tags FREI: Wenn dieser Tag in der Statistik als arbeitsfrei beruecksichtigt werden soll hier ein kleines "x" oder "j" eintragen, sonst leer lassen LAYOUT: leer oder beliebige Kombination der folgenden Buchstaben. Dabei bedeuten: f,b ... fett (bold) k,i ... kursiv (italics) u ... unterstrichen n ... normal (leer) Tag nicht nach AGENDA uebertragen Gross-/Kleinschreibung ist unerheblich TYP: F (ixes Datum) O (stern +/- Differenz) W (ochentag der 1.-5./letzten Woche) D (ay = 1.ter Wochentag nach Datum) T: Tag M: Monat NR: Anzahl bzw. Wochentag folgende Kombinationen sind je nach TYP sinnvoll: TYP T M NR ------------------------------- F 1-31,M 1-12 (M=Muttertag im Mai) O +/-Zahl (Differenz Ostersonntag) W 1-5,L 1-12 Mo..So (L=Letzter) D 1-31 1-12 Mo..So Beispiele: F 1 1 Neujahr (fix 1.1.) F M 5 Muttertag (meistens 2. So im Mai) O -2 Karfreitag (2 Tage vor Ostersonntag) W L 1 Mo Winterschlussverkauf (letzter Montag im Januar) D 16 11 Mi Buss- und Bettag (erster Mittwoch am/ nach dem 16.11.) Die DBF-Datei sollte FEIERTAG.DBF heissen und in /DAT/ abgelegt sein... 2. "Mondphasen" 2.1. ... Vollmond / Neumond Werden fuer jeden Kalendermonat angezeigt. Die verwendeten Tabellen sind bis auf einen halben Tag genau; faellt Vollmond /Neumond aber in die Naehe von Mitternacht, dann kann das ausgewiesene Datum natuerlich um einen ganzen Tag falsch sein... In wenigen Faellen (z.B. im November/ Dezember 1997) wird irrtuemlich ein Neu- oder Vollmond an zwei zusammenliegenden Tagen angezeigt, ist aber selten und kann durch ein paar Zeilen Extracode vermieden werden - naechste Version...) 3. "Jahreszeiten" 3.1. ... Fruehling..Winter -Anfang Werden angezeigt, aber da keine astronomische Formel benutzt wird, sind die angegebenen Daten oft um einen Tag falsch ermittelt ! Wichtige Prozeduren: OsterSo: ermittelt das Datum des Ostersonntags eines Kalenderjahres OsterDif: ermittelt einen Tag als Differenz zum Ostersonntag (+/-) MondInit: initialisiert Tabellen Mond: liefert jeweils ersten Neu- und Vollmond im Monat Monde: sieht nach, ob ggf. im lfd. Monat zweimal dieselbe Mondphase auftritt (selten, s. Fehler!) Stat: gibt die Jahresstatistik aus, die vorher in arbtag%() vorbereitet wird FloatDOW: liefert den 1.-4. (5.) oder letzten Mo/Di/Mi..So eines Monats wotag% 1=Mo, 2=Di ... 7=So FloatWoT: liefert den naechsten Mo/Di/Mi..So nach einem Datum (Buss- und Bettag ist z.B. der erste Mi am/nach dem 16.11. eines Jahres) SchJahr: liefert 1 wenn Schaltjahr oder 0 bei gemeinem Jahr MoTage%: liefert den Monatsletzten eines Monats (Anzahl der Tage) JhrZt%: Jahreszeitbeginn (+/- 1) Weitere spaerliche Infos sind im Programmsource vereinzelt angegeben. Viel Spass damit, Juergen Galupki INSTALLATIONSHINWEIS: - das Programm KALENDER.OPL ins Verzeichnis /OPL/ kopieren - die Tagesdefinitionen ins Verzeichnis /DAT/ kopieren anschliessend die OPL-Datei uebersetzen lassen. BEKANNTE FEHLER: - die zu ergaenzende AGENDA-Datei darf nicht (von Agenda...) geoeffnet sein, also ggf. vorher schliessen HISTORIE: - Version 2.0 Februar 1998 + Feiertage nicht mehr fest verdrahtet, sondern ueber DBF-Datei pflegbar + kleinere Layoutaenderungen - Version 1.1 Dezember 1997 + Muttertagsberechnung korrigiert 2ter Sonntag im Mai ausser wenn Pfingsten auch auf diesen Tag fallen wuerde, dann 1 Woche frueher - Version 1.0 Oktober 1997 Links: Calendars International http://www.travlang.com/calendar/ weitere PSION-Programme von anderen Autoren zum Thema (Liste bestimmt nicht vollstaendig): HOL.OPL was written by Odd Gripenstam http://decus.se/~gripenol/hol.html Feiertag Version 3.0 was written by Brendan W. Breede http://www.informatik.uni-bremen.de/~brendan/ Agenda-related Stuff by David Kurtz http://www.kurzbyrn.demon.co.uk/psion.htm