Posebni datumi i vremena u godini i njihovi izračuni

 Posljednja promjena  24.07.2005

        Ovdje je riječ o nekim datumima i vremenima koje datum ne obilježava , već dan u sedmici 

(osim Adventa).

 Back

To use this Web page interactively, you must have Microsoft® Internet Explorer 4.01 or later and the Microsoft Office Web Components.  See the Microsoft Office Web site for more information.

List 1

Funkcija Uskrsa VBA

Public Function Uskrs(god As Integer)
Dim d As Integer
d = (((255 - 11 * (god Mod 19)) - 21) Mod 30) + 21
Uskrs = DateSerial(god, 3, 1) + d + (d > 48) + 6 - ((god + god \ 4 + d + (d > 48) + 1) Mod 7)
End Function

 

Formula Uskrsa je u listu 1

Funkcija izračunavanja noći punog mjeseca (za ribare ne ide se na more)

 

Function PunMjesec(Datum As Date) As Boolean
Const SynodMonat As Double = 29.530588
Const SynodStart As Double
= 105.6213922
Application.Volatile
Dim OK As Boolean
Dim DatumDbl As Double
Dim DatumLng As Long
Dim DatumHilf As Date
Dim i As Long
If Year(Datum) > 1900 And Year(Datum) < 2100 Then
OK = False
For i = 1 To 2470
DatumDbl = SynodStart + i * SynodMonat
DatumLng = Int(DatumDbl)
DatumHilf =
CDate(DatumLng)
If DatumHilf = Datum Then
OK = True
Exit For
End If
Next
i
Else
OK = ""
End If
PunMjesec = OK
End Function

Funkcija izračunavanja početka izračunavanje ljetnog  i zimskog vremena

 

Function Ljetnovrijeme(god As Long) As Date
Dim term As Date
Dim dan As Long
If god > 1900 And god < 2100 Then
term = DateSerial(god, 4, 1)
dan = Weekday(term, vbMonday)
term = term - dan

Else
term = ""
End If
Ljetnovrijeme = term
End Function


Function Zimskovrijeme(god As Long) As Date
Dim term As Date
Dim dan As Long
If god > 1900 And god < 2100 Then
term = DateSerial(god, 11, 1)
dan = Weekday(term, vbMonday)
term = term - dan

Else
term = ""
End If
Zimskovrijeme = term
End Function

 

Funkcija Adventa

 

Function Advent(Godina As Integer, koji As Integer)
If koji < 5 Then
Select Case koji
Case 1
Advent = DateSerial(Godina, 12, 25) - (Weekday(DateSerial(Godina, 12, 25)) + 20)
Case 2
Advent = DateSerial(Godina, 12, 25) - (Weekday(DateSerial(Godina, 12, 25)) + 13)
Case 3
Advent = DateSerial(Godina, 12, 25) - (Weekday(DateSerial(Godina, 12, 25)) + 6)
Case 4
Advent = DateSerial(Godina, 12, 25) - (Weekday(DateSerial(Godina, 12, 25)) - 1)
End Select
Else

Advent = ""
End If
End Function