Archiv verlassen und diese Seite im Standarddesign anzeigen : Berechnung der Feiertage in Bascom
Hallo,
hat mal jemand unter Bascom die Feiertage berechnet ... :-k
(Gauss-Fomel für Ostersonntag + X für die nächsten Feiertage)
und veröffentllicht den Code? O:)
Danke vorab
Hi!
Habs zwar nicht in Bascom ihr aber in Visual Basic.
http://www.microsoft.com/germany/msdn/library/visualtools/vb6/BerechnungBeweglicherFeiertageUnterVisualBasic.msp x?mfr=true
Müßte man auf Bascom umschreiben(pro Code-Zeile nur eine Berechnung !)
gruß,MX3
In Excel habe ich das so:
tag = ((234 - 11 * (current_year Mod 19)) Mod 30) + 21
ostern = DateSerial(current_year, 3, 1) + tag + (tag > 48) + 6 - ((current_year + current_year \ 4 + tag + (tag > 48) + 1) Mod 7)
Ungetestet übersetzt wäre das etwa so:
config date= DMY , Separator = .
tag=_year mod 19
tag=tag*11
tag=234-tag
tag=tag mod 30
tag=tag+21
if tag>48 then tag=tag+1
märz01="01.03."+str(_year)
ostern=_year\4
ostern=ostern+year
ostern=ostern+tag
ostern=ostern+1
ostern=ostern mod 7
ostern=sysday(märz01)-ostern
ostern=ostern+tag
ostern=ostern+6
Rosenmontag=ostern-48
Karfreitag=ostern-2
Ostersonntag=ostern
Ostermontag=ostern+1
Christi_Himmelfahrt=ostern + 39
Pfingstsonntag=ostern + 49
Pfingstsonntag=ostern + 50
Fronleichnam=ostern + 60
Gruß
Rolf
Versteht jemand, wo der diese beiden smilies hergenommen hat?
Da soll eigentlich eine 8 und eine) stehen.
Ich habe die obige Formel für das 21. Jahrhundert vereinfacht und in eine Library-Funktion umgesetzt.
Die Funktion Eastern ist gültig von 2000 bis 2099 und muss mit einem BYTE-Wert von 0 bis 99 (Jahreszahl) aufgerufen werden.
Mit Einbindung der Library Eastern.lib/lbx kann die Funktion Eastern benutzt werden, welche eine SYSDAY-Wert zurückgibt. Dies ist ein nummerischer Wert vom Typ WORD, welcher die Anzahl der Tage seit dem 1.1.2000 angibt.
Mit diesem Wert kann in BASCOM-AVR mit Tagen gerechnet werden.
Mit der Funktion DATE kann dann dieser SYSDAY-Wert in einen Datums-String oder auch in diskrete Werte für Tag, Monat und Jahr umgewandelt werden.
Dim wOsterSonntag as Word
Dim bJahr as Byte
bJahr = 6
wOsterSonntag = Eastern (bJahr)
Print Date(wOsterSonntag)
Mit diesem Code-Beispiel wird 16.04.06 ausgegeben.
Aus dem angehängten ZIP-File müssen die Dateien Eastern.lib und Eastern.lbx in den LIB-Pfad kopiert werden. Ein ausführliches Beispiel, wie man diese Funktion Eastern benutzt ist im File Ostern.bas enthalten.
Hey, Klasse - Funktioniert prima!
Vielen Dank dafür!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.