Option Explicit
'Traduction VBA EXCEL de Modeste Geedee d'un script de Jan MEEUS Société Astronomique de France (SAF)
'Equinoxes et Solstices :1 = printemps, 2=été, 3= automne, 4= hiver
Function Saisons(YY As Integer, N As Integer) As Double 'il sort un no serial date avec heure TU
'******************************
' Usage : =SAISONS(Année, N)
'SAISONS(2014,1) ===> 41718,70618 (i.e. 20 mars 2014 à 16h56m UT)
' résultat à mettre au format date/heure souhaité
'******************************
Dim JJD As Double, CODE1 As Integer, K As Integer, dk As Double, D As Double, T As Double, TETUJ As Double
CODE1 = YY
K = YY - 2000 - 1
dk = K + 0.25 * (3 + N)
T = 0.21451814 + 0.99997862442 * dk _
+ 0.00642125 * Sin(1.580244 + 0.0001621008 * dk) + 0.0031065 * Sin(4.143931 + 6.2829005032 * dk) _
+ 0.00190024 * Sin(5.604775 + 6.2829478479 * dk) + 0.00178801 * Sin(3.987335 + 6.2828291282 * dk) _
+ 0.00004981 * Sin(1.507976 + 6.283109952 * dk) + 0.00006264 * Sin(5.723365 + 6.283062603 * dk) _
+ 0.00006262 * Sin(5.702396 + 6.2827383999 * dk) + 0.00003833 * Sin(7.166906 + 6.2827857489 * dk) _
+ 0.00003616 * Sin(5.58175 + 6.2829912245 * dk) + 0.00003597 * Sin(5.591081 + 6.2826670315 * dk) _
+ 0.00003744 * Sin(4.3918 + 12.5657883 * dk) + 0.00001827 * Sin(8.3129 + 12.56582984 * dk) _
+ 0.00003482 * Sin(8.1219 + 12.56572963 * dk) - 0.00001327 * Sin(-2.1076 + 0.33756278 * dk) _
- 0.00000557 * Sin(5.549 + 5.753262 * dk) + 0.00000537 * Sin(1.255 + 0.003393 * dk) _
+ 0.00000486 * Sin(19.268 + 77.7121103 * dk) - 0.00000426 * Sin(7.675 + 7.8602511 * dk) _
- 0.00000385 * Sin(2.911 + 0.0005412 * dk) - 0.00000372 * Sin(2.266 + 3.9301258 * dk) _
- 0.0000021 * Sin(4.785 + 11.5065238 * dk) + 0.0000019 * Sin(6.158 + 1.5774 * dk) _
+ 0.00000204 * Sin(0.582 + 0.5296557 * dk) - 0.00000157 * Sin(1.782 + 5.8848012 * dk) _
+ 0.00000137 * Sin(-4.265 + 0.3980615 * dk) - 0.00000124 * Sin(3.871 + 5.2236573 * dk) _
+ 0.00000119 * Sin(2.145 + 5.5075293 * dk) + 0.00000144 * Sin(0.476 + 0.0261074 * dk) _
+ 0.00000038 * Sin(6.45 + 18.848689 * dk) + 0.00000078 * Sin(2.8 + 0.775638 * dk) _
- 0.00000051 * Sin(3.67 + 11.790375 * dk) + 0.00000045 * Sin(-5.79 + 0.796122 * dk) _
+ 0.00000024 * Sin(5.61 + 0.213214 * dk) + 0.00000043 * Sin(7.39 + 10.976868 * dk) _
- 0.00000038 * Sin(3.1 + 5.486739 * dk) - 0.00000033 * Sin(0.64 + 2.544339 * dk) _
+ 0.00000033 * Sin(-4.78 + 5.573024 * dk) - 0.00000032 * Sin(5.33 + 6.069644 * dk) _
- 0.00000021 * Sin(2.65 + 0.020781 * dk) - 0.00000021 * Sin(5.61 + 2.9424 * dk) _
+ 0.00000019 * Sin(-0.93 + 0.000799 * dk) - 0.00000016 * Sin(3.22 + 4.694014 * dk) _
+ 0.00000016 * Sin(-3.59 + 0.006829 * dk) - 0.00000016 * Sin(1.96 + 2.146279 * dk) _
- 0.00000016 * Sin(5.92 + 15.720504 * dk) + 0.00000115 * Sin(23.671 + 83.9950108 * dk) _
+ 0.00000115 * Sin(17.845 + 71.4292098 * dk)
JJD = 2451545 + T * 365.25
D = CODE1 / 100#
TETUJ = (32.23 * (D - 18.3) * (D - 18.3) - 15) / 86400#
JJD = JJD - TETUJ
JJD = JJD + 0.0003472222
'-----Conversion Date Julienne en date grégorienne
Saisons = JJD - 2415018.5 '--------------------- spécial Excel calendrier 1900
End Function