hallo -
habe die funktion unter folgendem link
http://spotlight.de/nzforen/amsa/m/amsa-952017223-446.html
in asp.net geschrieben.
du hattest doch interesse dran.
hier der code:
' Bestimmt ob Datum ein Feiertag ist
Function Feiertag(Datum As datetime) As String
Dim ostersonntag, dat As datetime
Dim jahr, monat, tag As Integer
Dim M,N,I,J,T As Integer
Dim a,b,c,D,E As Integer
'Feiertagsberechnung
dat = Datum
jahr = dat.Year
monat = dat.Month
tag = dat.Day
'feste Feiertage
If(monat=1 AND tag=1)Then
return "Neujahr"
End If
If(monat=5 AND tag=1)Then
return "Maifeiertag"
End If
If((monat=6 AND tag=17 AND jahr<= 1990) OR (monat=10 AND tag=3 AND jahr>
1990))Then
return "Tag der deutschen Einheit"
End If
If(monat=11 AND tag=1)Then
return "Allerheiligen"
End If
If(monat=12 AND tag=24)Then
return "Heiligabend"
End If
If(monat=12 AND tag=25)Then
return "1. Weihnachtsfeiertag"
End If
If(monat=12 AND tag=26)Then
return "2. Weihnachtsfeiertag"
End If
If(monat=12 AND tag=31)Then
return "Silvester"
End If
'Variable Feiertage
Select Case jahr
Case 1582 To 1699: M = 22: N = 2
Case 1700 To 1799: M = 23: N = 3
Case 1800 To 1899: M = 23: N = 4
Case 1900 To 2099: M = 24: N = 5
Case 2100 To 2199: M = 24: N = 6
End Select
j = jahr
a = j mod 19
b = j mod 4
c = j mod 7
D = (19 * a +M) mod 30
E = (2 * b + 4 * c + 6 * D + N) mod 7
If (D + E) <= 9 Then
ostersonntag = DateSerial(jahr, 3, 22+D+E)
Else
ostersonntag = DateSerial(jahr, 4, D+E-9)
End If
If(ostersonntag.Month = 4 AND D = 28 AND a > 10) Then
If(Ostersonntag.Day = 26)Then
ostersonntag = DateSerial(jahr,4,19)
End If
End If
If (datetime.Compare(dat,ostersonntag.AddDays(-48))=0) Then
return "Rosenmontag"
End If
If (datetime.Compare(dat,ostersonntag.AddDays(-2))=0) Then
return "Karfreitag"
End If
If (datetime.Compare(dat,ostersonntag)=0) Then
return "Ostersonntag"
End If
If (datetime.Compare(dat,ostersonntag.AddDays(1))=0) Then
return "Ostermontag"
End If
If (datetime.Compare(dat,ostersonntag.AddDays(39))=0) Then
return "Christi Himmelfahrt"
End If
If (datetime.Compare(dat,ostersonntag.AddDays(49))=0) Then
return "Pfingstsonntag"
End If
If (datetime.Compare(dat,ostersonntag.AddDays(50))=0) Then
return "Pfingstmontag"
End If
If (datetime.Compare(dat,ostersonntag.AddDays(60))=0) Then
return "Fronleichnahm"
End If
For T = 16 To 22
If DateSerial(jahr,11,T).DayOfWeek = 4 Then
If datetime.Compare(dat,DateSerial(jahr,11,T))=0 Then
return "Buss- und Bettag"
End If
End If
Next T
End Function
----- Original Message -----
From: "Axel K�hn" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 30, 2004 9:02 PM
Subject: AW: [Asp.net] wochenend markierung
> Hmmm, das mit den Feiertagen ist so ne Sache.
> Problem dabei ist, dass diese Landesspezifisch (Hessen, Sachsen, Bayern,
> etc)
> sind. Leider kann man auch nicht davon ausgehen das ein Feiertag immer
> Feiertag bleibt.
> Noch Problematischer wirds wenn das auch noch international funktionieren
> soll.
>
> Ich habe jetzt nicht die ganze Diskussion verfolgt, aber
> so auf Anhieb fallen mir da 2 M�glichkeiten ein:
>
> 1.
> dass man sich die jeweiligen Tage in eine Datei(XML, TXT, oder sonst was)
> oder gleich in eine Datenbank schreibt.
> Dann braucht man sich nur ne Funktion zu schreiben, die die
> anzuzeigenden Tage mit der Datenquelle vergleicht und
> je nachdem markiert (oder halt auch nicht markiert).
>
> 2.
> Man schreibt sich f�r das ganze ne Funktion die die Tage selbst
> berechnet(nur f�r Deutschland).
>
> Beispiel f�r Feiertage:
> http://spotlight.de/nzforen/amsa/m/amsa-952017223-446.html
> http://www.coding-board.de/board/archive/topic/1856-1.html
> http://www.ms-office-forum.net/forum/archivethread-95657.html
>
> Beispiel f�r Ferien:
> http://www.ifa12b.de/forum/index.php?board=10;action=display;threadid=3124
>
> Ich habe die Richtigkeit dieser Algorithmen leider noch nicht
> �berpr�ft. Machen aber auf den ersten Blick den Eindruck das sie
> auch wirklich machen was sie sollen.
>
> Falls sich jemand die m�he macht und das ganze nach C# oder VB.Net
portiert
> w�re es schon den Code mal zu Posten.
>
> Gru�
>
> Axel
>
>
> -----Urspr�ngliche Nachricht-----
> Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Auftrag von Thomas Beckert
> Gesendet: Freitag, 30. Januar 2004 19:41
> An: [EMAIL PROTECTED]
> Betreff: Re: [Asp.net] wochenend markierung
>
>
> jaja. das leben kann so einfach sein.
> hat jemand eine knarre f�r mich?
> ;)
>
> jetzt aber die ultimative herausforderung: was, wenn man auch feiertage
> makieren will?
>
> haha!
>
> :-)
>
> ----- Original Message -----
> From: "Claudius Ceteras" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, January 30, 2004 5:11 PM
> Subject: RE: [Asp.net] wochenend markierung
>
>
> Da habt ihrs... Jetzt hab ich doch nachgesehen ...
>
> String foo(datetime x)
> {
> DayOfWeek d = x.DayOfWeek;
> return (d==DayOfWeek.Saturday ||
> d==DayOfWeek.Sunday)?"wochenende":"arbeitstag";
> }
>
> Claudius
>
> > Wieso ne eigene formel? .NET hat doch wohl M�glichkeiten den
> > Wochentag zu nem Datum zu finden...
> > Keine Lust selbst nachzuschauen, aber mich w�rd's wundern,
> > wenn man bei date datentyp nichts dabei ist...
> >
>
> > > so wirklich kann ich den Algorithmus auch nicht erkl�ren.
> > > Habe ich aus alten Uni-Unterlagen. Wenn es dich wirklich
> > interessiert,
> > > google doch mal. Du kannst dann ja berichten, wo du eine Erkl�rung
> > > gefunden hast.
>
> _______________________________________________
> Asp.net mailing list
> [EMAIL PROTECTED]
> http://www.glengamoi.com/mailman/listinfo/asp.net
>
> _______________________________________________
> Asp.net mailing list
> [EMAIL PROTECTED]
> http://www.glengamoi.com/mailman/listinfo/asp.net
>
>
> _______________________________________________
> Asp.net mailing list
> [EMAIL PROTECTED]
> http://www.glengamoi.com/mailman/listinfo/asp.net
>
_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net