Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Demoprogramm: Einfacheres Verfahren Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von ManfredW, Homepage - 22.12.2018 10:52)
 Als Antwort auf Demoprogramm: Einfacheres Verfahren von Dietmar - 7.12.2018 21:46
ManfredW nutzt:  CC1-Station V1.1, Open-Maxi
> ' ============================================================================
> ' Einfache Wochentagsberechnung auf allen OM-Mikrocontrollern
> ' In OCBASIC 1.12a_e1 von Dietmar Harlos am 7. Dezember 2018
> ' ============================================================================
>
> ' Quelle: Die sehr gute Seite "Steuerung mit C-Control" von Manfred Wilzeck:
>
> ' http://manfred.wilzeck.de
>
> ' Siehe dort unter "2. Tipps und Tricks  Teil 2":
> ' "Teil 2 Fortsetzung Datum_berechnen:"
> ' "Weiter zu Datum berechnen für Steuerungen:"
> ' Im Kapitel "2.2.28) Einfache Berechnung des Wochentages für 2000 bis 2099"
> ' stellt Manfred ein einfaches Verfahren zur Wochentagsberechnung vor.
>
> ' Auf den drei kleinsten OM-Mikrocontrollern muß LOOKTABBYTE durch LOOKTAB
> ' ersetzt werden. Außerdem läßt sich nur bis ins Jahr 2046 rechnen, weil
> ' der Term "(5 * Jahr + KM)" zu groß wird, da nur BYTE-Arithmetik zur
> ' Verfügung steht.
>
> ' --- Definitionen für das System --------------------------------------------
>
> 'INCLUDE "om.def"           'Definitionen für die Open-Micro und Open-Mini
> 'INCLUDE "omid.def"         'Definitionen für die Open-Midi
> 'INCLUDE "omac.def"         'Definitionen für die Open-Macro
> INCLUDE "omax.def"         'Definitionen für die Open-Maxi
>
> ' --- Definitionen des Anwenders ---------------------------------------------
>
> DIM KM BYTE                'Variablen für Wochentagsberechnung definieren
> DIM Tag BYTE
> DIM Monat BYTE
> DIM Jahr BYTE
>
> ' --- Das Hauptprogramm ------------------------------------------------------
>
> PrintSpc=ON                'SPACE vor einem dezimalen PRINT ausgeben
>
> ?"Dezember 2018:"
> FOR Tag=1 TO 31
>   ?Tag;wochentag(Tag,12,18)
> NEXT Tag
>
> ?"Januar 2019:"
> FOR Tag=1 TO 31
>   ?Tag;wochentag(Tag,1,19)
> NEXT Tag
>
> End2Host=ON                'Nach Programmende in den Host-Modus
> END                        'Programmende, Neustart mit der Enter-Taste
>
> ' --- Subroutinen ------------------------------------------------------------
>
> ' Einfache Wochentagsberechnung für 2000 bis 2099
>
> ' Quelle: Die sehr gute Seite "Steuerung mit C-Control" von Manfred Wilzeck:
>
> ' http://manfred.wilzeck.de
>
> FUNCTION wochentag(Tag,Monat,Jahr)
>   LOOKTABBYTE wt_Konstante,  Monat,  KM  ' Die Variable KM enthält nun den Wert aus der Tabelle
>   RETURN ((5 * Jahr + KM) / 4 + Tag - 1) MOD 7 + 1 ' Tag 1 bis 7 (Jahr 2-stellig für Jahr 2000 bis 2099)
> END FUNCTION
>
> ' --- Tabellen ---------------------------------------------------------------
>
> TABLE wt_Konstante BYTE 0 23 7 8 20 0 12 20 4 16 24 8 16 TABEND
>
> ' --- Programmende ----------------------------------------------------------

Die Einschränkung "nur bis Jahr 2046" kann vermieden werden durch
RETURN ((Jahr + KM) / 4 + Jahr + Tag - 1) MOD 7 + 1 ' Tag 1 bis 7 (Jahr 2-stellig für Jahr 2000 bis 2099)

Frohe Weihnachten

Meine Homepage: http://m

 Antwort schreiben

Bisherige Antworten:

Re: Demoprogramm: Einfacheres Verfahren - der Rechenweg (von Dietmar - 22.12.2018 11:56)
    Re: Demoprogramm: Einfacheres Verfahren - der Rechenweg (von ManfredW - 2.01.2019 14:48)
        Re: Demoprogramm: Einfacheres Verfahren - der Rechenweg (von Dietmar - 2.01.2019 16:28)