ebook img

Terminplanung mit BASIC auf Commodore 2000/3000/4000/8000: Kalenderalgorithmen PDF

127 Pages·1984·3.407 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Terminplanung mit BASIC auf Commodore 2000/3000/4000/8000: Kalenderalgorithmen

Kastner Tenninplanung mit BASIC auf Commodore 2000/3000/4000/8000 Prof. Gustav Kastner Terminplanung mit BASIC auf Commodore ~g~~~~g - Kalenderalgorithmen - SPRINGER FACHMEDIEN WIESBADEN GMBH CIP-Kurztitelaufnahme der Deutschen Bibliothek Kastner, Gustav: Terminplanung mit BASIC auf Commodore 2000/3000, 4000/8000 : Kalenderalgorithmen / Gustav Kastner. ISBN 978-3-409-19204-0 ISBN 978-3-663-12990-5 (eBook) DOI 10.1007/978-3-663-12990-5 Das in diesem Buch vorgestellte Programm wurde intensiv in der praktischen Anwendung ge testet. Das Buch wurde mit der größten Sorgfalt hergestellt. Wegen der technologisch empfind lichen Struktur und komplizierten logischen Abhängigkeiten können Verlag und Verfasser jedoch keinerlei Haftung oder juristische Verantwortung fUr Folgen übernehmen, die sich aus fehlerhaften Angaben ergeben. © Springer Fachmedien Wiesbaden 1984 Ursprünglich erschienen bei Betriebswirtschaftlicher Verlag Dr. Th. Gabler GmbH, Wiesbaden 1984 Satz: Elsner & Behrens, Oftersheim Umschlag: Studio für Werbung und Kommunikation, Wiesbaden Alle Rechte vorbehalten. Auch die fotomechanischen Vervielfältigung des Werkes (Fotokopie, Mikrokopie) oder von Teilen daraus bedarf vorheriger Zustimmung des Verlages. ISBN 978-3-409-19204-0 Vorwort Bei der Termin-Planung muß immer der Kalender bereitliegen. Er bestimmt und regelt die Zeitrechnung. Die größte Zeiteinheit ist das Jahr, das in Monate, Wochen und Tage eingeteilt ist. Die Zeiteinteilung des Kalenders richtet sich nach astrono mischen Gegebenheiten: die Drehung der Erde um ihre eigene Achse ergibt das Wechselspiel von Tag und Nacht, der Lauf der Erde um die Sonne bestimmt die Jahreszeiten und damit die Monate. Es gibt etliche Kalender. Seit dem 15. 10. 1582 richten wir uns nach dem Gregorianischen Kalender (siehe 1. Kapitel). Ein Termin wird durch ein Kalender-Datum festgelegt, das durch eine Tageszahl, eine Monatszahl und eine Jahreszahl angegeben .wird. Zu jedem Datum gehört ein bestimmter Wochentag. Dieser ist rur die Termin-Planung sehr wichtig. Eine Arbeit z. B., die nicht unterbrochen werden darf und rur die man drei Werktage braucht, kann nicht an einem Freitag begonnen werden. - Damit hat man das klassische Kalenderproblem (Wochentagsbestimmung zu einem vorgegebenem Datum, siehe 6. Kapitel), das bei fast jeder Termin-Planung benötigt wird. Für die Bestimmung der Werktage müssen in jedem Jahr die Festtage jedesmal neu errechnet werden (siehe 9. Kapitel), da entweder das Datum (z. B. Ostern) oder der Wochentag (z. B. Weihnachten, Neujahr) sich ändert. Wegen der nicht einheitlichen Feiertagsregelung muß der Anwender selbst bestimmen können, welche Festtage Feiertag sein sollen. Kennt man das Anfangsdatum und die Dauer der beabsichtigten Tätigkeit oder des Vorganges, so ist das zugehörige Enddatum (nach Kalendertagen oder Werkta gen mit und ohne Samstage) zu berechnen (siehe Kapitel 16 und 17). Das umge kehrte Problem stellt sich, wenn Anfangs- und Enddatum vorgegeben sind, und die Anzahl der verfligbaren Kalender- oder Werktage (mit oder ohne Samstage) festge stellt werden muß (siehe Kapitel 12 bis 14). Ein ähnlich gelagertes Problem ergibt sich z. B. bei Krankenhaus- oder Hotel Aufenthalt: Die Anzahl der Tage bzw. Nächte zwischen den Kalenderdaten ist rur die Berechnung nötig. Viele Planungen oder betriebswirtschaftlichen Vorgänge (z. B. Produktion oder Lieferung) orientieren sich an der Wochen-Nummer eines Jahres. Es ist also einer seits nötig, ein Kalenderdatum umzurechnen in die Wochen-Nummer und umge kehrt, eine nach Wochen vorgenommene Termin-Planung wieder in ein Kalenderda tum zu überfUhren (siehe Kapitel 7 und 8). Man könnte noch eine beliebig lange Liste von Problemen anflihren, bei denen Termin und Kalender maßgeblich beteiligt sind. 5 Das vorliegende Buch bietet Lösungen in Fonn von fertigen BASIC-Programmen an. Es ist so konzipiert, daß die Kapitel systematisch aufeinander aufbauen. Die Lösungen zu den Teilproblemen sind in Unterprogrammen codiert, damit sie leicht bausteinartig (als Module) in andere Programme übernommen werden können. Das Programm-Verzeichnis zeigt, wo in der vorliegenden Programm-Sammlung die Unter programme in den nachfolgenden Programmen eingebaut worden sind. Die Unter programme sind mit vierstelligen Anweisungs-Nummern von 5000 bis 7430 codiert. Die meisten Microcomputer (abgesehen von kapazitätsmäßig kleinen) gestatten fiinf stellige Anweisungs-Nummern. Man kann also bei Erstellung eigener Programme durch Voranstellen einer ftinften Ziffer vor die Anweisungs-Nummer die hier ange gebenen Unterprogramme an die individuellen Programme anpassen. Die Unterpro gramme sind relativ kurz und leicht überschaubar, so daß bei einer eventuellen Änderung der Anweisungs-Nummern auch die Änderung der Sprunganweisungen und Verzweigungen innerhalb des Unterprogrammes leicht und selbst von nicht er fahrenen Programm-Erstellern ohne Komplikationen durchgeflihrt werden können. Abgesehen von der Gauß'schen Berechnungsformel ftir die Oster-Termine (im 9. Kapitel) sind alle anderen Kalender-Algorithmen vom Verfasser erstellt. Sie werden im jeweiligen Kapitel hergeleitet und erläutert. Ziel des Buches ist es, nicht nur fer tige, codierte Programme bereitzustellen, sondern auch auf die Probleme der Pro gramm-Erstellung einzugehen. Insbesondere werden die Phasen "Problem-Analyse", "Algorithmus" und "Programm-Logik" (siehe Anhang 1) in allen Kapiteln zu mindest exemplarisch angedeutet. Wiederholungen werden selbstredend und viele Details notgedrungen unterdrückt. Die Programm-Logik wird durchgehend in Logik Diagrammen dargestellt (siehe Anhang 2). Sie sind modifizierte Struktogramme. Die Programme sind auf den Microcomputern von Commodore der Serien 2000, 3000 und 4000 erstellt und ohne jede Änderung ablauffähig. Nur ftir das 11. Pro gramm (Monatskalender mit Wochen-Nummer, Hervorhebung der Sonn-und Feier tage, Anzahl der Sonn-und Feiertage, Anzahl der Werktage mit und ohne Samstage) und ftir das 12. Programm (quartalsweise strukturierter Jahres-Übersichts-Kalender) ist ein Drucker erforderlich. Sonst wird keine Peripherie benötigt. Da nur die in Anhang 3 angegebenen Sonderzeichen zur Bildschirmsteuerung verwendet wurden, ist eine übertragung der Programme auf andere Microcomputer mit BASIC-Inter preter ohne besondere Schwierigkeiten möglich. Durch die in allen Kapiteln angege bene Programm-Logik ist selbst eine übertragung in andere Programmiersprachen realisierbar. Mainz, im September 1984 Gustav Kastner 6 Inhaltsverzeichnis Vorwort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1. Der Gregorianische Kalender. . . . . . . . . . . . . . . . . . . .......... . 9 2. Gültigkeitskontrolle eines Datums ......................... . 13 3. Tagesnummer eines Datums ............................. . 25 4. Datum zur Tagesnummer ............................... . 31 5. Wochentagsberechnung für den Neujahrstag ................... . 37 6. Wochentag eines beliebigen Datums ........................ . 43 7. Wochen-Nummer eines Datums ........................... . 47 8. Datum zu einer Wochen-Nummer 53 9. Datumsfixe und bewegliche Feste 61 10. Monatskalender mit Wochen-Nummer und Feiertagen ............ . 73 11. Jahres-übersichtskalender .............................. . 85 12. Anzahl der Kalendertage zwischen Anfangs- und Enddatum ........ . 93 13. Anzahl der Werktage zwischen zwei Kalenderdaten .............. . 99 14. Anzahl der Werktage ohne Samstage ........................ . 111 15. Datum-Fortschreibung ................................. . 115 16. Enddatum nach Kalendertagen ........................... . 121 17. Enddatum nach Werktagen .............................. . 129 Programm-und Literaturverzeichnis ........................... . 141 Anhang 1: Die Phasen der Programm-Erstellung . . . . . . . . . . . ........ . 145 Anhang 2: Logik-Diagramme ............................... . 149 Anhang 3: BASIC-Sonderzeichen ............................. . 155 Anhang 4: Liste der verwendeten Variablen-Namen ................. . 159 7 1 Der Gregorianische Kalender Unser heutiger Kalender, der sogenannte Gregorianische Kalender, gilt seit dem 15. 10. 1582. Bis dahin galt der Julianische Kalender, der aber zu diesem Zeitpunkt um zehn Tage "falsch" ging. Wie kam das? Das Kalenderjahr wird bestimmt vom Umlauf der Erde um die Sonne. Ein voller Umlauf dauert 365,2422 Tage. Das bedeutet, daß bei einem KalendeIjahr von 365 Tagen nach vier Jahren ein Unterschied von fast einem (genau 4 ·0,2422 = 0,9688) Tag zwischen dem Kalenderjahr und der astronomischen Konstellation auftritt. Der Julianische Kalender (nach Julius Cäsar benannt), glich diese Abweichung durch einen Schalttag alle vier Jahre aus. Das war etwas (nämlich 1 - 0,9688 = 0,0312 Tage) zuviel und so ging bis zum 16. Jahrhundert der Julianische Kalender um zehn Tage nach. Anlaß Hir den Gregorianischen Kalender (nach Gregor XIII benannt), bessere Schaltjahresregeln festzulegen: 1. Die durch 4 teilbaren Jahre sind Schaltjahre. 2. Die durch 100 teilbaren Jahre sind keine Schaltjahre. 3. Die durch 400 teilbaren Jahre sind Schaltjahre. Die Regel 1 oder 2 gilt nur, wenn sie nicht durch die nachfolgende außer Kraft ge setzt wird. In einem Schaltjahr wird als Schalttag der 29. Februar eingeHigt, sonst hat der Februar nur 28 Tage. Nach der ersten Schaltjahresregel entstehen durch den eingeHigten Schalttag ein Fehler von 0.0312 Tagen (wie oben schon berechnet) alle vier Jahre. In einem Jahr hundert sind 25 Schaltperioden, so daß dieser Fehler auf 25·0,0313 = 0,78 Tage angewachsen ist. Durch die zweite Schaltjahresregel fällt nach hundert Jahren der Schalttag weg, so daß der Fehler nun 0,78 - 1 =- ü,22 Tage beträgt. Nach vier Jahr hunderten beträgt dieser Fehler dann 4 . (-0,22) = -0,88 Tage, der durch die dritte Schaltjahresregel mit dem Schalttag auf 1 - 0,88 = 0,12 Tage korrigiert wird. Für diesen letzten Fehler von 0,12 Tagen, der in einem Zeitraum von vierhundert Jahren anfällt, sieht der Gregorianische Kalender keine Regelung mehr vor. Erst nach 3200 Jahren (8 Zeiträume zu je 400 Jahren) braucht dieser Fehler berücksich tigt zu werden, da er dann auf 8 . 0,12 = 0,96 Tage angewachsen sein wird. Wie man sieht, genügen also die drei Schaltjahresregeln "vorläufig". Wichtig ist Hir uns die dritte Schaltjahresregel, denn wegen ihr wird das Jahr 2000 wie jedes durch vier teilbare Jahr (entgegen der 2. Regel) ein normales Schalt jahr sein. Das bedeutet, daß in dem Zeitraum von 1901 bis zum Jahre 2099 nur eine einzige (nämlich die erste) Schaltjahresregel zu beachten ist. 11 2 Gültigkeits kontrolle eines Datums

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.