Domino 9 und frühere Versionen > Entwicklung

Feiertage errechnen

<< < (2/2)

eknori:
wenn du jetzt noch die Funktionsweise von DateSerial posten könntest, waäre es schon fast perfect  :D

Glombi:
Hi,

hier was zu der Funktion:
http://www-mmt.inf.tu-dresden.de/Docs/iis3/ASP_Docs/ref/vbs/vbscript/69.htm

Hab noch was direkt in LS gefunden - hier die wichtigste Passage:
(c) by Raimund Mann, 1997

Sei Y die 2-stellige Jahreszahl:

 If Y < 51 Then
'          Y = Y+2000
'     Else
'          Y=Y+1900
'     End If
'Berechne den Ostersonntag für das angegebene Jahr
' nach der Methode von Butcher
   a=Int(Y Mod 19)
   b= Int(Y/100)
   c=Int(Y Mod 100)
   d=Int(b/4)
   e=Int(b Mod 4)
   f=Int((b+8)/25)
   g=Int((b-f+1)/3)
   h=Int((19*a+b-d-g+15) Mod 30)
   i=Int(c/4)
   k=Int(c Mod 4)
   l=Int((32+2*e+2*i-h-k) Mod 7)
   m=Int((a+11*h+22*l)/451)
   EasterMonth =Int((h+l-7*m+114)/31) ' [3=March, 4=April]
   p=Int((h+l-7*m+114) Mod 31)
   EasterDay=p+1     '(date in Easter Month)
   EasterDate = Cstr(EasterDay) + "." + Cstr(EasterMonth) + "."
   
   
'Basierend auf dem Ostersonntag berechne alle anderen Feiertage
   
'Die beweglichen Feiertage vor Ostern
 '-48 Rosenmontag    
   FTListe("Rosenmontag") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay-48)),6)
'-47 Faschingsdienstag
   FTListe("Faschingsdienstag") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay-47)),6)
'-46 Aschermittwoch    
   FTListe("Aschermittwoch") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay-46)),6)
' -3  Gründonnerstag
   FTListe("Gründonnerstag") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay-3)),6)
' -2  Karfreitag
   FTListe("Karfreitag") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay-2)),6)
   
'Die beweglichen Feiertage nach Ostern:      
' 0 OsterSonntag    
   FTListe("Ostersonntag") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay)),6)
'1  Ostermontag          
   FTListe("Ostermontag") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay+1)),6)
'39  Christi Himmelfahrt (Donnerstag)    
   FTListe("Christi Himmelfahrt") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay+39)),6)
'49  Pfingstsonntag    
   FTListe("Pfingstsonntag") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay+49)),6)
'50  Pfingstmontag    
   FTListe("Pfingstmontag") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay+50)),6)
'60  Fronleichnam (Donnerstag; in BW, BAY, HES, NRW, RPF, SAL, THÜ)    
   FTListe("Fronleichnam") = Left$(Cstr(Datenumber(Y,EasterMonth,EasterDay+60)),6)
   
'Buß- und Bettag ist der 3 Mittwoch im November
     'mit welchem Wochentag beginnt der November
   woTag = Weekday(Datenumber(Y,11,1))
     'Buß- und Bettag ist dann
   If woTag = 4 Then
      FTListe("Buß- und Bettag") = Left$(Cstr(Datenumber(Y,11,15)),6)    
   Elseif woTag > 4 Then
      FTListe("Buß- und Bettag") = Left$(Cstr(Datenumber(Y,11,15+(7-(woTag-4)))),6)              
   Elseif woTag < 4 Then    
      FTListe("Buß- und Bettag") = Left$(Cstr(Datenumber(Y,11,15+(4-woTag))),6)              
   End If

ata:
... auf meiner Homepage habe ich eine kleine Demo unter

http://www.anton-tauscher.de/download/DateHandling.nsf
http://www.anton-tauscher.de/download/DateHandling.zip

... demnächst werde ich eine internationale Variante ins Netz stellen - es gab sehr viel Anfragen aus dem Ausland...


ata

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln