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

Antwort per Email an