Domino 9 und frühere Versionen > Entwicklung
Feiertage errechnen
Friese:
Hallo!
Hat (zufällig) jemend einen Script, mit dem ich die Feiertage eines Jahres errechnen kann? Sprich, daß ich am Anfang des Jahres einen Button drücke und mir alle Feiertage ausgegeben werden.
Über Antworten wäre ich sehr dankbar.
mfg
Friese
klaussal:
... geh mal über die suche, da gab's mal was
eknori:
für Ostern gibt es da eine Formel von Gauss
gilt für die Jahre 1900 bis 2099:
Wenn man den den Divisionsrest aus Jahreszahl dividiert durch 19 nimmt und diese Zahl mit 19 mutipliziert und die Konstante 24 addiert und dann das Ganze durch 30 dividiert, erhaelt man eine Zahl, die man sich merken sollte. Nun braucht man nur noch die Jahreszahl durch 4 teilen, den Rest verdoppeln, dann das 4-fache des Divisionsrestes von Jahreszahl dividiert durch 7 hinzuaddieren und das 6-fache der oben gemerkten Zahl addieren, die Konstante 5 dazuaddieren und das Ganze durch 7 teilen. Diese Zahl plus der oben gemerkten Zahl ( :o etwa vergessen?) minus 9 ergibt beinahe den Ostersonntag - aber auch nur, wenn dieser auf den Monat April faellt. Kommt allerdings der 26. heraus, so wird daraus der 19. April. Und ehe man den 25. errechnet hat, sollte man pruefen ob die erste gemerkte Zahl ( :o :o :o na - immer noch im Kopf?) nicht etwa 28 ist und der Divisionsrest der Jahreszahl durch 19 groesser als 10 ist - dann ist naemlich am 18. April Ostern. - Geschafft!!
easy, oder ??
;D ;D ;D
Axel_Janssen:
Anton Tauscher (username ata) hat auf seiner Webseite eine gute Script-Bibliothek, wenn mich nicht alles täuscht.
Dann kannst du dir die von eknori angesprochenen grundlegenden Mathe-Operationen sparen.
Glombi:
Hi,hier eine VB formel
die lässt sich aber leicht in LS umsetzen:
Ausgehend vom Ostersonntag kann man die Feiertage berechnen:
Function Ostern(Yr As Integer) As Date
Dim D As Integer
D = (((255 - 11 * (Yr Mod 19)) - 21) Mod 30) + 21
Ostern = DateSerial(Yr, 3, 1) + D + (D > 48) + 6 - _
((Yr + Yr \ 4 + D + (D > 48) + 1) Mod 7)
End Function
Weitere Feiertage:
Neujahr = DateSerial(Year(Now), 1, 1)
Maifeiertag = DateSerial(Year(Now), 5, 1)
Karfreitag = Ostern(Year(Now)) - 2
Ostermontag = Ostern(Year(Now)) + 1
Himmelfahrt = Ostern(Year(Now)) + 39
Pfingstsonntag = Ostern(Year(Now)) + 49
Pfingstmontag = Ostern(Year(Now)) + 50
Fronleichnam = Ostern(Year(Now)) + 60
TagDeutscheEinheit = DateSerial(Year(Now), 10, 3)
Quelle:
http://www.schmittis-page.de/index.html?/excel/vba/t62.htm
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln