Function ZenithTime(ByVal Date_ As Date, ByVal longitude As Double) As Date
Pi = WorksheetFunction.Pi()
A = Year(Range("B1"))
M = Month(Range("B1"))
J = ActiveCell.Value
vdate = DateSerial(A, M, J)
longitude = -3.36667 'Lorient
' Variables
Dim n As Double ' Nombre de jours depuis le 1er janvier de l'année
Dim B As Double ' Correction pour l'équation du temps
Dim EoT As Double ' Équation du temps en minutes
Dim SolarNoon As Double ' Midi solaire en heures
' Nombre de jours depuis le début de l'année
n = vdate - DateSerial(A, 1, 1) + 1
' Calcul de l'équation du temps (EoT)
'Source du calcul: https://www.techno-science.net/definition/6567.html
B = (2 * Pi * (n - 81) / 364) 'pi est en radian ==> B est déjà en radian
EoT = -9.87 * Sin(2 * B) + 7.53 * Cos(B) + 1.5 * Sin(B)
' Calcul de l'heure du zénith solaire (en heures) 'c'est ici que ca doit coincer
SolarNoon = 12 + 4 * longitude + EoT ' * 60 + EoT '* 60 '/60 ?
'https://webetab.ac-bordeaux.fr/Pedagogie/Physique/TPE/midi.htm
'HEURE LEGALE = HEURE SOLAIRE + CORRECTION LONGITUDE + 1 h (ou 2 l'été) + CORRECTION "EQUATION DU TEMPS"
HS = TimeSerial(12, 0, 0)
CL = TimeSerial(0, 4 * longitude, 0)
He = TimeSerial(2, 0, 0)
HL = HS + CL + He + TimeSerial(0, EoT, 0)
' Retourner l'heure du zénith en heures décimales
'ZenithTime = Format(SolarNoon, "h:mm:ss")
ZenithTime = Format(HL, "hh:mm:ss")
End Function
Sub testzenith()
longitude = -3.36667
Cells(20, 2) = ZenithTime(vdate, longitude)
End Sub