Hallo,
Ik zou de feestdagen moeten berekenen adhv een vast stuk code, deze mag niet gewijzigd worden. Alle codes zouden moeten slagen.
Hier mogen nu alleen functies extra bij geschreven worden. Voor Pasen had ik al een functie maar die blijkt niet direct te werken...
Iemand enig idee hiervoor?
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
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?