Feestdagen berekenen

Status
Niet open voor verdere reacties.

Jimbo84

Gebruiker
Lid geworden
4 aug 2011
Berichten
8
Hallo,

Ik zou de feestdagen moeten berekenen adhv een vast stuk code, deze mag niet gewijzigd worden. Alle codes zouden moeten slagen.
Code:
Module Feestdagen
    Sub Main()
        Console.WriteLine(Feestdag.GoedeVrijdag(2011) = #4/22/2011#)
        Console.WriteLine(Feestdag.PaasMaandag(2011) = #4/25/2011#)
        Console.WriteLine(Feestdag.OlhHemelvaart(2011) = #6/2/2011#)
        Console.WriteLine(Feestdag.Moederdag(2011) = #5/8/2011#)
        Console.WriteLine(Feestdag.NationaleFeestdag(2011) = #7/21/2011#)
        Console.WriteLine(Feestdag.WeekdagNationaleFeestdag(2011) = DayOfWeek.Thursday)
        '
        Console.WriteLine(Feestdag.GoedeVrijdag(2012) = #4/6/2012#)
        Console.WriteLine(Feestdag.PaasMaandag(2012) = #4/9/2012#)
        Console.WriteLine(Feestdag.OlhHemelvaart(2012) = #5/17/2012#)
        Console.WriteLine(Feestdag.Moederdag(2012) = #5/13/2012#)
        Console.WriteLine(Feestdag.NationaleFeestdag(2012) = #7/21/2012#)
        Console.WriteLine(Feestdag.WeekdagNationaleFeestdag(2012) = DayOfWeek.Saturday)
        '
        Console.WriteLine(Feestdag.GoedeVrijdag(2013) = #3/29/2013#)
        Console.WriteLine(Feestdag.PaasMaandag(2013) = #4/1/2013#)
        Console.WriteLine(Feestdag.OlhHemelvaart(2013) = #5/9/2013#)
        Console.WriteLine(Feestdag.Moederdag(2013) = #5/12/2013#)
        Console.WriteLine(Feestdag.NationaleFeestdag(2013) = #7/21/2013#)
        Console.WriteLine(Feestdag.WeekdagNationaleFeestdag(2013) = DayOfWeek.Sunday)
 
        Console.ReadLine()
    End Sub
End Module
Hier mogen nu alleen functies extra bij geschreven worden. Voor Pasen had ik al een functie maar die blijkt niet direct te werken...
Code:
Function Pasen(ByVal jaar As Integer) As Date ' Methode van Gauß
        Dim guldenGetal As Integer = (jaar Mod 19) + 1
        Dim eeuw As Integer = (jaar \ 100) + 1
        Dim schrikkeljaarCorrectie As Integer = ((eeuw * 3) \ 4) - 12
        Dim maanCorrectie As Integer = (((eeuw * 8) + 5) \ 25) - 5
        Dim epacta As Integer = ((((guldenGetal * 11) + 20) + maanCorrectie) - schrikkeljaarCorrectie) Mod 30
        If (epacta = 24 OrElse epacta = 25) AndAlso guldenGetal > 11 Then epacta += 1
        Dim volleMaanOffset As Integer = 44 - epacta
        If volleMaanOffset < 21 Then volleMaanOffset += 30
        Dim dag As Integer = (volleMaanOffset + 7) - ((((((jaar * 5) \ 4) - schrikkeljaarCorrectie) - 10) + volleMaanOffset) Mod 7)
        Dim maand As Integer
        If dag > 31 Then
            dag -= 31
            maand = 4
        Else
            maand = 3
        End If
        Pasen = New Date(jaar, maand, dag)
    End Function

Iemand enig idee hiervoor?
 
Voor degene met een vaste datum:

[cpp]If Date.Today.ToShortDateString = "2-12-2011" Then MsgBox("'t Is vandaag 2-12-2011")[/cpp]

Voor Pasen:

[cpp]Private Function Pasen(Year As Integer)
Dim d As Integer = (((255 - 11 * (Year Mod 19)) - 21) Mod 30) + 21
Dim dat = New DateTime(Year, 3, 1)
dat = dat.AddDays(+d + (d > 48) + 6 - ((Year + Year \ 4 + d + (d > 48) + 1) Mod 7))
Return (dat)
End Function[/cpp]
 
Laatst bewerkt:
Is dit soms een schoolopdracht dat jij dezelfde opgave hebt? :confused:
 
@vbsb Het is niet toegestaan jou probleem in iemand anders zijn topic aan de orde te stellen. Tevens, naar nu blijkt is het een schoolopgave hetgeen niet is toegestaan op Helpmij.
 
En ook voor Jimbo84 geldt, dit riekt naar een schoolopdracht. Topic gaat op slot.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan