calcul des saisons

tany

XLDnaute Occasionnel
bonjour à tous,

après recherche négative je pose la question :
existe t-il un algorithme, une procédure pour calculer
la date des équinoxes et solstices d' une année donnée
ce qui détermine les saisons
merci de vos avis et bonne journée
 

Dranreb

XLDnaute Barbatruc
Re : calcul des saisons

Bonjour.
J'utilise :
Code:
=EqxPrcoc+365,2425*ARRONDI((DATE(ANNEE(Aujhui);3;20)-EqxPrcoc)/365,2425;0)
Avec Aujhui :
Code:
=MAINTENANT()
Et EgxPrcoc :
Code:
=DATE(2096;1;1)-1+$F$3-$G$3
Avec F3 : 21/03/1900 00:00:00 et G3 :
Code:
=(365,2425*(2303-2096)-(DATE(2303;3;1)-DATE(2096;3;1)))/2
Format de nombre :
Code:
"± "j" jour, "hh"h "mm"' "ss"''"
Tout ça devrait pouvoir se simplifier…
C'était un calcul que j'avais fait à partir d'une moyenne sur deux équinoxes particulières à venir :
La plus précoce : 19 mars 2096, 21h 37' 48"
La plus tardive: 22 mars 2303, 02h 22' 12"

Dans un autre classeur j'ai retrouvé ça :
La durée de l'année, c'est selon votre point de vue !
jourshminssoit
Année tropique (délai entre deux équinoxes de printemps) :36554849,6365,2422407
Année grégorienne (nombre de jours entier en 400 ans) :36554872365,2425
Année sidérale (retour même position terre - soleil - autre étoile) :365699,6365,2563611
Année anomalistique (retour au grand axe de l'ellipse) :36561356,8365,2596852
31558499secondes si l'année lumière vaut 9.461E+15 mètres, soit :36561459365,2604056

J'en conclus que cette formule devrait donner des résultats satisfaisant :
Code:
=71668,90125-ARRONDI((71668,90125-AUJOURDHUI())/91,3105601851852;0)*91,3105601851852
Elle donnerait le moment d'un des 4 évènements de l'année le plus proche d'une date donnée, ici aujourd'hui.

P.S. Non ce n'est pas bon, les saisons ayant des durées inégales d'après Wikipédia
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : calcul des saisons

Bonsour®
bonjour à tous,

après recherche négative je pose la question :
existe t-il un algorithme, une procédure pour calculer
la date des équinoxes et solstices d' une année donnée
ce qui détermine les saisons
- IMCCE - Grand public
:rolleyes:
IMCCE - Grand public

une petite fonction personnalisée :
Function Equi_Sols(YY As Integer, N As Integer) As Double
' Equinoxes et Solstices
YY =année
N:1 = printemps, 2=été, 3= automne, 4= hiver
Capture.jpg

traduction personnelle d'un script de Jean MEEUSS
 

Pièces jointes

  • Equinoxe_Solstice.xls
    133 KB · Affichages: 355
  • Capture.jpg
    Capture.jpg
    60.9 KB · Affichages: 305
  • Capture.jpg
    Capture.jpg
    60.9 KB · Affichages: 303
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : calcul des saisons

bonjour à tous,

EDIT: j'ai supprimé mon code pour mettre celui de Modeste Geedee qui est fiable !
Code:
'Traduction VBA de Modeste Geedee d'un script de Jean MEEUSS
'Equinoxes et Solstices S: 1=printemps 2=été 3=automne 4=hiver
'Exp (2014,1)>>> 41718,70618 (i.e. 20 mars 2014 à 16h56m UT)
'résultat à mettre au format date/heure souhaité
Public Function FDateSerialSaisonMG(Annee%, S%) As Double
Dim JJD As Double, K As Integer, dk As Double, D As Double, T As Double, TETUJ As Double
K = Annee - 2000 - 1: dk = K + 0.25 * (3 + S)
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 = Annee / 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(à partir du 15/10/1582) excel 1900
JJD = JJD - 2415018.5 'mis direct avant FJDDate(JJD) qui représentait toujours JJD-2415018.5
FDateSerialSaisonMG = JJD
End Function
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : calcul des saisons

Bonsour®
extrait de IMCCE (avec beaucoup de patience) j'ai extrait pour 2000 à 2100 !
:rolleyes:
si j'avais eu avant ta traduction du script en VBA je ne me serais pas embêté !

:( le script IMCCE n'est semble-t-il plus accessible...

toujours d'apres Jean MEEUSS, j'avais récupéré un script JS de l'institut de BOCHUM (D)
mais ne l'avais pas traduit, si le cœur en dit à un courageux :eek:
 

Pièces jointes

  • seasonsjs.doc
    64.5 KB · Affichages: 202

Roland_M

XLDnaute Barbatruc
Re : calcul des saisons

re

@Tany, la formule de modeste simplifié pour ton utilisation plus simple !

Code:
Sub EssaiSaisons()
YY% = 2014: N% = 1
P$ = Format(FEqui_Sols(YY, 1), "dd mmmm yyyy hh:mm:ss") & " Printemps"
E$ = Format(FEqui_Sols(YY, 2), "dd mmmm yyyy hh:mm:ss") & " Eté"
A$ = Format(FEqui_Sols(YY, 3), "dd mmmm yyyy hh:mm:ss") & " Automne"
H$ = Format(FEqui_Sols(YY, 4), "dd mmmm yyyy hh:mm:ss") & " Hiver"
MsgBox P$ & vbLf & E$ & vbLf & A$ & vbLf & H$
End Sub

'Traduction VBA de Modeste d'un script de Jean MEEUSS
'Equinoxes et Solstices :1 = printemps, 2=été, 3= automne, 4= hiver
Function FEqui_Sols(YY As Integer, N As Integer) As Double 'il sort un no serial date avec heure
Dim JJD 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
 
FEqui_Sols = FJDDate(JJD)

End Function

Function FJDDate(JD As Double) As Double
Z = Application.Floor(JD + 0.5, 1)
F = JD + 0.5 - Z
If (Z < 2299161) Then
    A = Z
Else
    I = Application.Floor((Z - 1867216.25) / 36524.25, 1)
    A = Z + 1 + I - Application.Floor(I / 4, 1)
End If
B = A + 1524
C = Application.Floor((B - 122.1) / 365.25, 1)
D = Application.Floor(365.25 * C, 1)
T = Application.Floor((B - D) / 30.6001, 1)
RJ = B - D - Application.Floor(30.6001 * T, 1) + F
JJ = Application.Floor(RJ, 1)
RH = (RJ - Application.Floor(RJ, 1)) * 24
Heure = Application.Floor(RH, 1)
Mn = Application.Floor((RH - Heure) * 60, 1)
Sec = ((RH - Heure) * 60 - Mn) * 60
If (T < 14) Then
   MM = T - 1
Else
   If ((T = 14) Or (T = 15)) Then MM = T - 13
End If
If (MM > 2) Then
   AA = C - 4716
Else
   If ((MM = 1) Or (MM = 2)) Then AA = C - 4715
End If

FJDDate = DateSerial(AA, MM, JJ) + TimeSerial(Heure, Mn, Sec)
End Function
 
Dernière édition:

tany

XLDnaute Occasionnel
Re : calcul des saisons

bonne soirée

et merci infiniment pour tout ce travail
mes calculs de saisons qui jusque là étaient fixes
vont avoir une meilleure touche, super !
je vais adapter sur mes anciennes feuilles.
j'espère que ça va servir à d'autres aussi, merci encore à tous.
 

Modeste geedee

XLDnaute Barbatruc
Re : calcul des saisons

Bonsour®
reduction fonction pour utilisation EXCEL (calendrier 1900)

VB:
 'Traduction VBA EXCEL de Modeste d'un script de Jean MEEUSS
 '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
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : calcul des saisons

Bonjour à tous.


Intéressant, tout ça.

Pour compléter, un truc bien bourrin valable de 1501 à 2500.​
Code:
Function toto(année&, saison$)
'Application Volatile ' facultatif
Dim s, u, m, x
    If année > 2000 Then x = titi(année) Else x = tata(année)
    If IsEmpty(x) Then
        toto = ""
    Else
        s = "*" & LCase(Left$(saison, 1)) & "*"
        s = Switch("1pm" Like s, 1, "2éej" Like s, 2, "3as" Like s, 3, "4hd" Like s, 4)
        m = Array(" mars ", " juin ", " septembre ", " décembre ")
        u = x((année - 1) Mod 25)
        toto = u(s - 1) Mod 100 & m(s - 1) & Format((u(s - 1) \ 100) / 1440, "hh:mm")
    End If
End Function

Private Function tata(a&)
Dim x
    Select Case a
    Case 1501 To 1525: x = Array(Array(54511, 70512, 132213, 60012), Array(89211, 105412, 22914, 94312), Array(124211, 141112, 58014, 129712), Array(15211, 31012, 91613, 20212), Array(49311, 65612, 126913, 54712), Array(83811, 101012, 18214, 89512), Array(118911, 135312, 52014, 123712), Array(9411, 26012, 87713, 15312), Array(43911, 60412, 122813, 50612), Array(78611, 95312, 13514, 85612), Array(113811, 130812, 49014, 121612), Array(5811, 20912, 83113, 12512), Array(40811, 55612, 118613, 47312), Array(75811, 91512, 10214, 82812), Array(111511, 126512, 43914, 117212), Array(2211, 17512, 79313, 8712), Array(36911, 52312, 114613, 43712), Array(71711, 87112, 5114, 77712), Array(106511, 122412, 40814, 113212), Array(141710, 12312, 74813, 4012), Array(31811, 46512, 109713, 38712), Array(66011, 81812, 914, 74212), Array(101511, 116112, 34314, 108412), Array(136210, 6412, 69413, 143411), Array(26911, 41112, 104713, 34412))
    Case 1526 To 1550: x = Array(Array(62011, 76112, 138913, 68512), Array(96711, 111512, 30414, 104412), Array(132010, 1912, 64613, 139411), Array(22711, 36412, 99713, 29812), Array(57211, 72012, 135613, 65312), Array(93011, 106912, 25614, 99812), Array(127810, 141511, 61013, 135311), Array(18211, 32412, 96813, 27212), Array(53611, 67612, 131113, 61712), Array(88511, 102712, 22514, 97612), Array(124310, 137111, 57013, 132611), Array(15511, 27612, 91713, 22612), Array(49711, 63112, 127313, 58112), Array(85311, 98112, 16814, 92312), Array(119610, 132411, 51613, 127011), Array(9511, 23012, 87113, 18112), Array(44611, 57912, 121413, 51912), Array(78911, 92412, 12614, 87312), Array(113810, 126511, 47313, 122711), Array(4511, 16712, 81713, 13112), Array(38511, 51812, 117113, 49012), Array(74611, 86912, 7014, 83712), Array(109910, 121211, 41913, 118511), Array(611, 12312, 77913, 10212), Array(36411, 48112, 112413, 44512))
    Case 1551 To 1575: x = Array(Array(71211, 83412, 3714, 80312), Array(106410, 118211, 38713, 115811), Array(141710, 9012, 73613, 5812), Array(31711, 44212, 109413, 41212), Array(67411, 79212, 143713, 75912), Array(102110, 113311, 34313, 110711), Array(135710, 3712, 70013, 2512), Array(27111, 38912, 104013, 36712), Array(61811, 73212, 138613, 71912), Array(96810, 107211, 29313, 107011), Array(132110, 141811, 63713, 140811), Array(22111, 32912, 98813, 32112), Array(57511, 68012, 132813, 66912), Array(92510, 102511, 23313, 101311), Array(126210, 137111, 59213, 136811), Array(17911, 28812, 94113, 27112), Array(52811, 63512, 129213, 62412), Array(87610, 98011, 20613, 98611), Array(123010, 133111, 55513, 133211), Array(13311, 24112, 90813, 25012), Array(49311, 59312, 125413, 60212), Array(85110, 93911, 16013, 94611), Array(119010, 128511, 51813, 130111), Array(10611, 20412, 86413, 20612), Array(45411, 55012, 120713, 55412))
    Case 1576 To 1600: x = Array(Array(79610, 89111, 11713, 90911), Array(114910, 123911, 46313, 124511), Array(4611, 14312, 81213, 15312), Array(39711, 49012, 115613, 50312), Array(74710, 83211, 5913, 84811), Array(108010, 117311, 41213, 120511), Array(143510, 9012, 75813, 11222), Array(35021, 43622, 110323, 46122), Array(69820, 77721, 1623, 81721), Array(105620, 113321, 36723, 116121), Array(140120, 4622, 71723, 7422), Array(31421, 39922, 106623, 42922), Array(67020, 75021, 141522, 77521), Array(100820, 109421, 33223, 112821), Array(136220, 1122, 68523, 3622), Array(27621, 35822, 103223, 38622), Array(61720, 69521, 138122, 74521), Array(96920, 104721, 29023, 109221), Array(131420, 139321, 63423, 143921), Array(22621, 29722, 97723, 35022), Array(58320, 64521, 132222, 69121), Array(92020, 98621, 23223, 104021), Array(126920, 134421, 58023, 138721), Array(18221, 25322, 92223, 29322), Array(52120, 59021, 127222, 64621))
    Case 1601 To 1625: x = Array(Array(87320, 94321, 18623, 99021), Array(121920, 129221, 53423, 133721), Array(12821, 19722, 88323, 25322), Array(48220, 54921, 123422, 60521), Array(82120, 89121, 14523, 96121), Array(117420, 124821, 49823, 131521), Array(9621, 15922, 84423, 22322), Array(44320, 49621, 119422, 57821), Array(79920, 85421, 10823, 92621), Array(114720, 120621, 45223, 127321), Array(5621, 11222, 79623, 18522), Array(40920, 46321, 114622, 52921), Array(74720, 80421, 5623, 87421), Array(109320, 115621, 40623, 122221), Array(621, 6422, 75223, 13022), Array(34520, 39621, 109622, 48421), Array(69220, 74821, 823, 83321), Array(104220, 109721, 35123, 118021), Array(139320, 143821, 69523, 9022), Array(30920, 35121, 104722, 43821), Array(65220, 69721, 139722, 78721), Array(100020, 105221, 30723, 113921), Array(135720, 140821, 65723, 5122), Array(26220, 30421, 100422, 40221), Array(61120, 65921, 136322, 75221))
    Case 1626 To 1650: x = Array(Array(96520, 101321, 27323, 110021), Array(131420, 135421, 61623, 1422), Array(22520, 26721, 97122, 36821), Array(56920, 61221, 131822, 71821), Array(91720, 96221, 22523, 106721), Array(127720, 131421, 57423, 141621), Array(18320, 20921, 91722, 32321), Array(52920, 56221, 127122, 67021), Array(87820, 91621, 17523, 101621), Array(122320, 125521, 51423, 136321), Array(13120, 16521, 86822, 27121), Array(47320, 50821, 121622, 61521), Array(81820, 85621, 12523, 96421), Array(117120, 120821, 47723, 131921), Array(7520, 10321, 82022, 23321), Array(42220, 45421, 117522, 58621), Array(77920, 81121, 8423, 93721), Array(113620, 115221, 42523, 128721), Array(5020, 6621, 78322, 19921), Array(39920, 42021, 113322, 54921), Array(74720, 77221, 3923, 89721), Array(110120, 112921, 39423, 125121), Array(820, 2621, 73822, 15721), Array(35220, 37521, 109422, 50321), Array(70220, 72921, 523, 85321))
    Case 1651 To 1675: x = Array(Array(105020, 106521, 34223, 120121), Array(139319, 141120, 69422, 11421), Array(29720, 31821, 104122, 46221), Array(64520, 66221, 138022, 80521), Array(99920, 101221, 29323, 115921), Array(134919, 135120, 63522, 6421), Array(25320, 26121, 98622, 41221), Array(60420, 62121, 133922, 76521), Array(95720, 96221, 23623, 111121), Array(130419, 131220, 59522, 2421), Array(21320, 22521, 95022, 37321), Array(56320, 57421, 129622, 72021), Array(91420, 92721, 21323, 108221), Array(126419, 126920, 55922, 143520), Array(17120, 17721, 91022, 34421), Array(52520, 53421, 126522, 69821), Array(88320, 87421, 16123, 104221), Array(123019, 122120, 51522, 139220), Array(13420, 13421, 86522, 30121), Array(48120, 48121, 120222, 64221), Array(82820, 82921, 11423, 99421), Array(117319, 116820, 45922, 134020), Array(7720, 7221, 80722, 24121), Array(42320, 42521, 116122, 59521), Array(77620, 76621, 5823, 94421))
    Case 1676 To 1700: x = Array(Array(112019, 111020, 40922, 129720), Array(2620, 2421, 76422, 21221), Array(38420, 37221, 110422, 55421), Array(73720, 72421, 2123, 91221), Array(109019, 107220, 37222, 126420), Array(20, 142420, 72122, 17021), Array(34820, 34421, 107922, 52821), Array(70620, 68921, 141922, 87421), Array(105119, 103320, 33322, 122220), Array(139519, 138620, 69222, 13521), Array(30720, 29221, 102922, 47621), Array(65120, 63621, 138122, 83421), Array(99619, 97820, 28722, 118720), Array(134419, 132120, 62822, 8721), Array(25220, 23321, 98122, 44021), Array(61120, 57621, 131822, 78321), Array(95619, 92020, 22622, 112820), Array(129719, 127520, 58222, 4321), Array(21120, 18621, 92022, 38321), Array(55720, 53221, 127222, 73721), Array(90419, 87820, 18822, 109020), Array(125519, 122720, 53622, 143220), Array(16120, 14121, 89522, 35221), Array(51820, 48721, 123822, 70721), Array(86620, 83221, 14723, 105821))
    Case 1701 To 1725: x = Array(Array(121020, 118521, 50523, 141521), Array(13221, 9722, 84623, 31822), Array(48421, 44222, 119523, 67022), Array(83020, 78821, 10823, 102421), Array(118220, 114021, 45023, 136321), Array(8421, 5122, 80123, 27622), Array(43821, 39622, 114323, 62322), Array(78520, 73721, 4923, 96221), Array(112120, 108621, 40723, 131521), Array(3521, 143521, 74623, 21822), Array(37921, 33722, 109323, 57122), Array(72020, 68021, 623, 93021), Array(107520, 103021, 35023, 127121), Array(142420, 138021, 70323, 18522), Array(34321, 28822, 105023, 53822), Array(69620, 63621, 139722, 88321), Array(103520, 99121, 31623, 124121), Array(139420, 134721, 65923, 14722), Array(30421, 25222, 100823, 49722), Array(64720, 59721, 136722, 85321), Array(100220, 95021, 27423, 119421), Array(134720, 129821, 62623, 11022), Array(25821, 20222, 97123, 46622), Array(60920, 54721, 131422, 80921), Array(94820, 89321, 22723, 116221))
    Case 1726 To 1750: x = Array(Array(130720, 124621, 56923, 6422), Array(21821, 14922, 91223, 40922), Array(55620, 49221, 126622, 76421), Array(90820, 84721, 17023, 110521), Array(125220, 119421, 51823, 1422), Array(16121, 9722, 86623, 36822), Array(51420, 44521, 121522, 70921), Array(85120, 79121, 13123, 106321), Array(120620, 114521, 47723, 141621), Array(11921, 5022, 82223, 32822), Array(45920, 39221, 117822, 68921), Array(82020, 75021, 8723, 103321), Array(117420, 110021, 43623, 138421), Array(8821, 722, 78623, 30122), Array(44320, 36021, 113422, 64421), Array(78220, 71021, 4623, 99621), Array(113520, 106421, 39123, 134321), Array(4721, 140921, 73623, 24522), Array(38220, 30721, 109122, 59821), Array(73320, 66021, 23, 94121), Array(107820, 100421, 34423, 129021), Array(142220, 134321, 69023, 20922), Array(33420, 25021, 103522, 55221), Array(67520, 59421, 138422, 90221), Array(103220, 94621, 29023, 125021))
    Case 1751 To 1775: x = Array(Array(138920, 129421, 63423, 15722), Array(28820, 19721, 98822, 51321), Array(64120, 55821, 133922, 86021), Array(99420, 91021, 24723, 120921), Array(134220, 125221, 59923, 12622), Array(25820, 16621, 95422, 47121), Array(60120, 51421, 130622, 82321), Array(95220, 86521, 21423, 117821), Array(130720, 121421, 55923, 8822), Array(20520, 11221, 91022, 44321), Array(56020, 46821, 126122, 78821), Array(91620, 81721, 16523, 113321), Array(126020, 115421, 51023, 4622), Array(17120, 6821, 85922, 39021), Array(51120, 41321, 120322, 73521), Array(85720, 76021, 10823, 108421), Array(121220, 110821, 45423, 142821), Array(10820, 421, 80422, 33721), Array(45720, 36021, 115922, 68721), Array(81120, 71121, 6423, 103921), Array(115620, 104921, 41123, 139821), Array(7120, 140420, 76622, 30821), Array(42220, 31421, 111522, 65621), Array(77720, 66521, 2423, 100921), Array(113620, 102021, 37523, 136021))
    Case 1776 To 1800: x = Array(Array(3720, 136320, 72522, 27221), Array(38620, 28221, 107922, 62121), Array(74220, 63521, 142622, 96821), Array(108620, 97021, 33223, 132021), Array(143419, 132020, 68722, 22521), Array(33820, 22621, 103322, 57221), Array(68220, 56821, 137422, 92321), Array(103320, 91621, 27923, 127421), Array(137419, 125220, 62322, 18121), Array(28320, 16321, 97422, 52721), Array(64220, 51721, 132022, 87421), Array(98920, 85421, 22223, 122621), Array(133719, 121020, 57922, 13621), Array(24520, 12521, 92722, 48321), Array(59420, 47121, 127222, 83321), Array(94920, 82521, 18923, 118521), Array(129319, 116720, 54022, 9521), Array(20020, 8021, 89622, 44821), Array(55720, 43621, 124722, 80521), Array(90420, 77121, 14823, 115921), Array(125419, 112320, 50422, 7021), Array(16820, 3521, 85122, 41521), Array(52020, 37721, 119122, 76221), Array(87220, 73021, 10223, 111221), Array(121220, 107221, 44523, 1722))
    Case 1801 To 1825: x = Array(Array(11621, 142321, 79423, 36222), Array(46921, 33622, 114323, 71022), Array(81421, 66922, 4424, 105622), Array(115720, 101721, 40023, 140421), Array(6521, 137021, 75023, 31422), Array(41221, 27122, 108823, 66422), Array(76221, 62222, 224, 102122), Array(111020, 96721, 35123, 137021), Array(2221, 131821, 70323, 27822), Array(38121, 23622, 105723, 63422), Array(73321, 57722, 140023, 98622), Array(107920, 92921, 31623, 133721), Array(143020, 128821, 66823, 24722), Array(34321, 19022, 100723, 59222), Array(69121, 53922, 136323, 94422), Array(103620, 88421, 27323, 129121), Array(138120, 123021, 61823, 19722), Array(29021, 14322, 97023, 55522), Array(63921, 47922, 130723, 90322), Array(98420, 82321, 21823, 124921), Array(133620, 117821, 56923, 15622), Array(24921, 8022, 90323, 49822), Array(59521, 42922, 125723, 85122), Array(93920, 77921, 16623, 119921), Array(128620, 112821, 51223, 10322))
    Case 1826 To 1850: x = Array(Array(19721, 4322, 86923, 46022), Array(54821, 38222, 121423, 80822), Array(89320, 72821, 13023, 115921), Array(124320, 108621, 48523, 7622), Array(15821, 142921, 82123, 42622), Array(50721, 33722, 117523, 78222), Array(85720, 68721, 8823, 113221), Array(121220, 103721, 43223, 3422), Array(12521, 139221, 78723, 39022), Array(47621, 29522, 112923, 73922), Array(81920, 64221, 3923, 108321), Array(116420, 99821, 39223, 143421), Array(7721, 133921, 72723, 33322), Array(41921, 24122, 107923, 68222), Array(76120, 58821, 143322, 103321), Array(110820, 93421, 33423, 137621), Array(1321, 128221, 68623, 29622), Array(36521, 18322, 102923, 64822), Array(71420, 52721, 137722, 99121), Array(106420, 88321, 29423, 134721), Array(142620, 123121, 63123, 25222), Array(33221, 13922, 98323, 60522), Array(67820, 49421, 134022, 96021), Array(103320, 84721, 24323, 130121), Array(138220, 119921, 60123, 21822))
    Case 1851 To 1875: x = Array(Array(29421, 10322, 95123, 56922), Array(64120, 44921, 130022, 91321), Array(98420, 80221, 21623, 127221), Array(134020, 114721, 55223, 17922), Array(24521, 4822, 89823, 52822), Array(58920, 39621, 125422, 87921), Array(94520, 74521, 15223, 121621), Array(129220, 109321, 50323, 13022), Array(19921, 143721, 84823, 48122), Array(54520, 34321, 119322, 82121), Array(88720, 69521, 10723, 117421), Array(124320, 104021, 44723, 7922), Array(15021, 138321, 79723, 42622), Array(49020, 29221, 115722, 78421), Array(84620, 64621, 5923, 113021), Array(119520, 99421, 41123, 5022), Array(10721, 134121, 76323, 40722), Array(46420, 25021, 111122, 74821), Array(81220, 60521, 2823, 110421), Array(117220, 95621, 37023, 1322), Array(8021, 130221, 71623, 35922), Array(41820, 21221, 107422, 71421), Array(77320, 56521, 141622, 105321), Array(111820, 90721, 32423, 140221), Array(2121, 124821, 67523, 31622))
    Case 1876 To 1900: x = Array(Array(37020, 15221, 101922, 65421), Array(70820, 49921, 136822, 101121), Array(106220, 84421, 26723, 136121), Array(141220, 118521, 60923, 26422), Array(31420, 9221, 96722, 61821), Array(67420, 44921, 131022, 96021), Array(102420, 79721, 21823, 131321), Array(137020, 114521, 57323, 23222), Array(28520, 5921, 92122, 57421), Array(63020, 41121, 127622, 92821), Array(98620, 76121, 18523, 128021), Array(133920, 110721, 53423, 18522), Array(23620, 1421, 89422, 54421), Array(59120, 37021, 123822, 89221), Array(94120, 71421, 14323, 124521), Array(128520, 105321, 49423, 16122), Array(20220, 140320, 83922, 49921), Array(54820, 31021, 118622, 84721), Array(89920, 65721, 8823, 119821), Array(124920, 100421, 43023, 9922), Array(14320, 134820, 78322, 44921), Array(49620, 26421, 112922, 79221), Array(84620, 60721, 3523, 113921), Array(118620, 94621, 39023, 5622), Array(9921, 130021, 74023, 40122))
    Case 1901 To 1925: x = Array(Array(44321, 20822, 108923, 75722), Array(79721, 55622, 143523, 111522), Array(115521, 90522, 34324, 2023), Array(5821, 125121, 70023, 37422), Array(41821, 17222, 105023, 72322), Array(77321, 52222, 139523, 107322), Array(111321, 86322, 30924, 143222), Array(2821, 121921, 65923, 33422), Array(37421, 12622, 100523, 68022), Array(72321, 46922, 135123, 103222), Array(107521, 81622, 25724, 137422), Array(140920, 115721, 60823, 28522), Array(31821, 7022, 95323, 63522), Array(67121, 41522, 129423, 98222), Array(101121, 75022, 20424, 133622), Array(136720, 110521, 55523, 23822), Array(27821, 1522, 90023, 58522), Array(62621, 36022, 124623, 94122), Array(98021, 71422, 15624, 128722), Array(131920, 106121, 50823, 19722), Array(23121, 141621, 86123, 54722), Array(58921, 32722, 121023, 89722), Array(92921, 66322, 12324, 125422), Array(128120, 101921, 47923, 16622), Array(19221, 137021, 82323, 51722))
    Case 1926 To 1950: x = Array(Array(54121, 27022, 116723, 87422), Array(90021, 62222, 7724, 121922), Array(124420, 96721, 42523, 12422), Array(15521, 132121, 77323, 47322), Array(51021, 23322, 111623, 81922), Array(84621, 56922, 2324, 117022), Array(119420, 92321, 37623, 7422), Array(10321, 127221, 72123, 41722), Array(44721, 16822, 106523, 76922), Array(79821, 51822, 141823, 111722), Array(113720, 86221, 32623, 2722), Array(4521, 121321, 67323, 38222), Array(40321, 12422, 102023, 73322), Array(74821, 46022, 136923, 108622), Array(110420, 81721, 28623, 143521), Array(2121, 117321, 63223, 34422), Array(37021, 7722, 97623, 70022), Array(72321, 43222, 133123, 104922), Array(106820, 78221, 24123, 139521), Array(141720, 113221, 59023, 30422), Array(33321, 4422, 94123, 65322), Array(67321, 37922, 128823, 100322), Array(101720, 73121, 20223, 135421), Array(136820, 108221, 54623, 26322), Array(27521, 141621, 88323, 61322))
    Case 1951 To 1975: x = Array(Array(62621, 32522, 123723, 96022), Array(97420, 67321, 14323, 130321), Array(132020, 102021, 48623, 21122), Array(23321, 137421, 83623, 56422), Array(57521, 27222, 118023, 91122), Array(92120, 62421, 9623, 126021), Array(127620, 98121, 44623, 16822), Array(18521, 131721, 78923, 52022), Array(53521, 23022, 114823, 87422), Array(88320, 58221, 5823, 122621), Array(123220, 93021, 40223, 13922), Array(14921, 128421, 75623, 49522), Array(50021, 18422, 110323, 84222), Array(85020, 53621, 1723, 119021), Array(120520, 89521, 36623, 10022), Array(11321, 123421, 70323, 44822), Array(45721, 14322, 105823, 79622), Array(80220, 49321, 140622, 114021), Array(114820, 83521, 30723, 4322), Array(5621, 118321, 65923, 39522), Array(39821, 7922, 100423, 74422), Array(74120, 42621, 135222, 109321), Array(109220, 78121, 26123, 822), Array(621, 111821, 59823, 35522), Array(35721, 2722, 95523, 70522))
    Case 1976 To 2000: x = Array(Array(70920, 38421, 130822, 105521), Array(106220, 73421, 20923, 140321), Array(141320, 109021, 56623, 32122), Array(32221, 143621, 91623, 67022), Array(66920, 34721, 126922, 101621), Array(102320, 70421, 18523, 137021), Array(137520, 104321, 52523, 27822), Array(27821, 138821, 88123, 63022), Array(62420, 30221, 123322, 98321), Array(97420, 64421, 12723, 132821), Array(132320, 99021, 47923, 24222), Array(23221, 133121, 82423, 58622), Array(57920, 23721, 116922, 92821), Array(92820, 59321, 8023, 128221), Array(127920, 93321, 41523, 18622), Array(18221, 127921, 76823, 53322), Array(52820, 19421, 112322, 88321), Array(88120, 54021, 2323, 122521), Array(122720, 88821, 38023, 14322), Array(13421, 123421, 73223, 49722), Array(48320, 14421, 108022, 84621), Array(83420, 50021, 143622, 120721), Array(119420, 84221, 33723, 11622), Array(10621, 118921, 69123, 46422), Array(45520, 10721, 104722, 81821))
    End Select
    tata = x
End Function

Private Function titi(a&)
Dim x
    Select Case a
    Case 2001 To 2025: x = Array(Array(81120, 45721, 138422, 116121), Array(115620, 80521, 29523, 7522), Array(6021, 115021, 64623, 42422), Array(40820, 5721, 99022, 76121), Array(75320, 40621, 134322, 111521), Array(110520, 74521, 24323, 2122), Array(721, 108621, 59023, 36722), Array(34820, 143920, 94422, 72321), Array(70320, 34521, 127822, 106621), Array(105120, 68921, 18923, 141821), Array(140020, 103621, 54423, 32922), Array(31420, 138820, 88822, 67121), Array(66120, 30421, 124422, 103121), Array(101620, 65121, 14823, 138221), Array(136520, 99821, 50023, 28822), Array(27020, 135420, 86122, 64421), Array(62820, 26321, 120122, 98721), Array(97420, 60721, 11323, 134221), Array(131820, 95421, 46923, 25922), Array(22920, 130320, 81022, 60221), Array(57720, 21121, 116122, 95921), Array(93320, 55321, 6323, 130721), Array(128420, 89721, 40923, 20722), Array(18620, 125120, 76322, 56021), Array(54120, 16221, 109922, 90221))
    Case 2026 To 2050: x = Array(Array(88520, 50521, 523, 124921), Array(122420, 85021, 36123, 16122), Array(13620, 120120, 70522, 49921), Array(48020, 10821, 105822, 85321), Array(83120, 45121, 140622, 120921), Array(118020, 79721, 31423, 11522), Array(8120, 114820, 67022, 47621), Array(44220, 6021, 101122, 82521), Array(79720, 40421, 135822, 117321), Array(114320, 75221, 27823, 9022), Array(6220, 111120, 62222, 43221), Array(40920, 2121, 97222, 78721), Array(76020, 36921, 132122, 114121), Array(111220, 71621, 22823, 4022), Array(1120, 106520, 58422, 39221), Array(36620, 141520, 92622, 73721), Array(71220, 31521, 127022, 108421), Array(104720, 65721, 18523, 122), Array(139919, 101020, 52722, 34321), Array(30620, 135320, 87222, 69421), Array(65720, 25421, 122122, 104721), Array(101220, 60221, 12723, 138621), Array(135219, 95320, 48022, 30121), Array(26820, 130720, 82222, 65121), Array(61920, 21321, 116722, 99721))
    Case 2051 To 2075: x = Array(Array(95820, 55821, 8623, 135321), Array(131519, 91520, 43522, 25621), Array(22620, 126320, 78522, 60921), Array(57320, 16621, 113822, 96921), Array(92820, 51821, 4723, 131521), Array(126919, 86720, 39822, 23121), Array(18720, 121820, 74322, 58221), Array(54420, 12321, 108722, 92421), Array(88320, 46621, 223, 127821), Array(123819, 82420, 34822, 18021), Array(14520, 117120, 69022, 52821), Array(48620, 7121, 103922, 88221), Array(83820, 42121, 138722, 122021), Array(117719, 76520, 29622, 12821), Array(8720, 111220, 64222, 47921), Array(43920, 1621, 98522, 82521), Array(77320, 35521, 133822, 118321), Array(112819, 71320, 24722, 9221), Array(4420, 106120, 59122, 44121), Array(39420, 140220, 94422, 79921), Array(75420, 32021, 129722, 114321), Array(110019, 67320, 20722, 5521), Array(1220, 102620, 55522, 41021), Array(36820, 137820, 90322, 75521), Array(70620, 27921, 125822, 110721))
    Case 2076 To 2100: x = Array(Array(105819, 63620, 17022, 1321), Array(141019, 98220, 51522, 36021), Array(31020, 131720, 86322, 71821), Array(66020, 22821, 121222, 106421), Array(100319, 57320, 11522, 141220), Array(135419, 91620, 45722, 32121), Array(27020, 126320, 80222, 66421), Array(60920, 16321, 115122, 101221), Array(95819, 52020, 5922, 136020), Array(131219, 87220, 40222, 26821), Array(21420, 121020, 75122, 62221), Array(56820, 12621, 110822, 96821), Array(91619, 47620, 1822, 131520), Array(126619, 82320, 36722, 23121), Array(18120, 117520, 71822, 58321), Array(52120, 7821, 106922, 93821), Array(87319, 43420, 142121, 129120), Array(123419, 78620, 32822, 20021), Array(14120, 112220, 67622, 55321), Array(49520, 3821, 103122, 90021), Array(84219, 39020, 137421, 124620), Array(118719, 73320, 27522, 15721), Array(10020, 108320, 62422, 50021), Array(43720, 142120, 97022, 84421), Array(78220, 33221, 132022, 119021))
    Case 2101 To 2125: x = Array(Array(113520, 68121, 22623, 9822), Array(3521, 101321, 57023, 45222), Array(38221, 136621, 92423, 80422), Array(73420, 27721, 126922, 115221), Array(108620, 61921, 17223, 6322), Array(421, 97321, 52623, 41322), Array(35021, 132021, 87623, 76222), Array(69820, 23721, 122822, 111421), Array(105520, 59521, 13923, 2722), Array(140120, 93221, 48623, 37822), Array(31021, 128521, 84523, 72822), Array(66220, 19921, 119522, 107621), Array(101020, 53721, 9523, 142621), Array(135920, 88621, 44723, 34022), Array(26221, 123021, 79123, 68722), Array(60820, 13721, 113622, 103421), Array(96520, 48921, 4423, 138221), Array(131320, 82321, 38523, 28822), Array(21821, 117521, 73923, 63622), Array(56820, 9221, 108522, 98321), Array(91520, 43121, 142322, 133021), Array(126320, 78221, 33923, 24022), Array(16821, 112921, 68923, 58522), Array(51420, 3721, 103822, 93421), Array(86920, 39221, 139322, 129121))
    Case 2126 To 2150: x = Array(Array(121520, 73021, 29823, 20522), Array(12221, 108121, 65523, 56022), Array(47820, 143820, 100522, 91221), Array(83420, 33721, 134322, 126021), Array(118820, 68921, 25923, 17222), Array(9621, 104021, 60823, 51922), Array(44320, 139220, 95122, 86621), Array(79520, 30621, 130322, 121821), Array(114120, 64321, 20623, 12222), Array(4421, 99021, 56023, 46722), Array(39220, 134420, 91122, 81621), Array(74020, 24021, 124622, 116221), Array(108320, 58521, 15923, 7622), Array(142720, 93321, 50623, 42622), Array(33620, 127820, 84722, 77021), Array(69120, 19021, 120122, 112421), Array(104420, 53121, 10723, 3322), Array(139020, 88221, 45923, 38222), Array(30120, 124320, 81322, 73721), Array(65620, 14621, 115022, 108321), Array(100320, 49321, 6823, 143621), Array(135220, 84721, 42323, 34522), Array(26220, 119520, 76622, 69021), Array(61220, 10721, 112222, 105021), Array(96120, 44921, 2723, 140121))
    Case 2151 To 2175: x = Array(Array(130720, 79521, 37623, 30922), Array(21820, 115020, 72922, 66221), Array(57520, 5021, 106422, 100321), Array(92120, 39521, 141522, 135221), Array(126520, 74821, 32723, 26122), Array(17320, 109620, 66322, 60121), Array(51820, 421, 101722, 95521), Array(86520, 34521, 136322, 130221), Array(121020, 69021, 27323, 20522), Array(11720, 104420, 62822, 56021), Array(47120, 138520, 96622, 90921), Array(81620, 29021, 131722, 126421), Array(116220, 64321, 23223, 18022), Array(8120, 99320, 57322, 52321), Array(43520, 134420, 92822, 87921), Array(78920, 25221, 128022, 123221), Array(113920, 60421, 18823, 13622), Array(4620, 96220, 54422, 49321), Array(40220, 130720, 88222, 83821), Array(74720, 21021, 123322, 118321), Array(108820, 56121, 15123, 9522), Array(20, 90820, 48922, 43421), Array(34220, 125020, 83922, 79121), Array(68720, 15221, 118622, 114521), Array(103520, 49521, 8823, 4522))
    Case 2176 To 2200: x = Array(Array(138119, 84520, 44022, 39921), Array(30120, 118920, 77722, 74321), Array(64920, 9321, 112422, 108921), Array(99020, 44821, 4223, 522), Array(134619, 80320, 38122, 34621), Array(25420, 115020, 73422, 70121), Array(60220, 5821, 109122, 105621), Array(95620, 40821, 23, 139821), Array(130119, 76120, 35822, 31721), Array(21820, 110820, 70122, 67021), Array(56620, 1221, 104822, 102021), Array(90820, 36421, 140622, 137721), Array(126819, 71520, 30522, 27721), Array(17920, 105920, 65422, 62821), Array(52420, 140420, 100622, 98121), Array(87420, 31521, 134822, 132021), Array(121519, 66320, 25722, 23221), Array(12720, 100620, 59822, 57921), Array(47520, 134820, 94322, 91821), Array(81120, 25521, 129922, 127121), Array(116619, 60720, 20022, 17421), Array(7220, 95020, 54722, 52821), Array(41420, 129420, 90222, 88921), Array(77120, 20721, 124822, 123221), Array(112120, 55621, 16123, 14722))
    Case 2201 To 2225: x = Array(Array(4121, 90521, 50923, 50022), Array(39621, 125621, 85623, 84522), Array(73521, 16922, 121523, 120322), Array(109320, 52821, 11923, 10822), Array(321, 87221, 46623, 45622), Array(34521, 121521, 82523, 81322), Array(69821, 12722, 117123, 115222), Array(104120, 47121, 7923, 6522), Array(139020, 81321, 42223, 42022), Array(30021, 115621, 76323, 76222), Array(63821, 6122, 111523, 111422), Array(99620, 41421, 1623, 1522), Array(134920, 75821, 35923, 36122), Array(24821, 110121, 71423, 71722), Array(60121, 1922, 106123, 105922), Array(94620, 36821, 140922, 141021), Array(129720, 71221, 31923, 32522), Array(21121, 106221, 66923, 66722), Array(55021, 140921, 102623, 102222), Array(90620, 32521, 137422, 137421), Array(125920, 67221, 28023, 28722), Array(15921, 101221, 63523, 64822), Array(51721, 136921, 98523, 99322), Array(87120, 27621, 133122, 134121), Array(122220, 61921, 23723, 25622))
    Case 2226 To 2250: x = Array(Array(13821, 97221, 58323, 59722), Array(47421, 131821, 93223, 94722), Array(82620, 23221, 127722, 129321), Array(117820, 57721, 18023, 19522), Array(7321, 91321, 53323, 54722), Array(42321, 126821, 88423, 89022), Array(77020, 17321, 122822, 123921), Array(111420, 51221, 13423, 15822), Array(2721, 86221, 48223, 50422), Array(37021, 120721, 83123, 85522), Array(72820, 12121, 118022, 120521), Array(108720, 47221, 8623, 11322), Array(142720, 81521, 44123, 47022), Array(34121, 117621, 79423, 81822), Array(69420, 8721, 114022, 116721), Array(104220, 42821, 4923, 8222), Array(139720, 78121, 40223, 42622), Array(29921, 112721, 75223, 77522), Array(64820, 3721, 109922, 112821), Array(100120, 38621, 323, 3722), Array(133820, 72121, 35123, 39022), Array(25121, 107521, 70223, 73522), Array(60620, 142420, 104422, 107821), Array(95120, 32121, 138822, 143121), Array(130220, 67521, 29923, 33622))
    Case 2251 To 2275: x = Array(Array(20321, 102321, 64523, 68222), Array(55020, 137120, 99122, 103221), Array(90520, 28221, 134022, 137921), Array(124420, 61821, 25123, 29022), Array(15321, 97321, 60723, 64122), Array(50920, 132620, 95322, 99221), Array(85420, 22221, 129722, 135221), Array(120920, 57821, 21323, 26322), Array(12021, 92821, 56023, 61022), Array(47520, 127720, 90822, 96121), Array(83420, 19321, 125822, 131121), Array(117520, 53521, 16623, 22122), Array(8221, 89121, 51923, 56922), Array(43620, 124420, 86422, 91421), Array(77920, 13721, 120722, 126321), Array(112720, 48721, 12323, 16922), Array(3021, 83421, 46823, 51422), Array(37420, 117620, 81022, 86521), Array(72520, 8521, 115822, 121721), Array(106620, 42121, 6323, 12722), Array(141620, 77221, 41423, 47422), Array(33520, 112620, 76122, 82321), Array(68520, 2521, 110322, 117421), Array(103420, 38121, 1923, 8622), Array(138420, 73821, 36923, 43422))
    Case 2276 To 2300: x = Array(Array(29420, 108520, 71422, 78321), Array(64920, 143920, 107122, 113621), Array(99420, 34221, 142222, 4522), Array(134020, 69321, 33623, 39622), Array(25420, 104820, 68622, 75121), Array(60120, 138320, 102522, 110321), Array(94920, 29221, 138022, 1322), Array(130120, 64421, 28723, 35722), Array(21220, 98520, 62522, 70221), Array(56220, 133620, 97622, 105321), Array(90420, 23821, 132022, 139821), Array(124620, 58721, 22723, 30422), Array(15820, 94020, 57622, 65321), Array(50520, 127420, 91622, 99921), Array(85020, 18321, 127322, 134821), Array(119920, 53821, 18423, 25822), Array(10920, 88120, 52422, 61021), Array(46020, 123320, 87922, 96821), Array(80920, 13921, 122922, 131821), Array(116220, 49021, 13923, 22622), Array(8120, 84820, 49522, 58121), Array(43420, 119020, 83622, 93121), Array(77920, 10221, 119222, 128221), Array(112920, 46021, 10423, 19122), Array(4021, 80221, 44123, 53422))
    Case 2301 To 2325: x = Array(Array(38621, 114921, 79623, 88522), Array(73021, 5222, 114523, 123122), Array(107321, 39622, 4824, 13523), Array(142020, 74621, 39823, 49222), Array(32921, 108221, 73423, 84022), Array(67421, 142621, 108423, 118622), Array(102621, 34122, 143723, 9523), Array(138220, 68521, 33223, 43722), Array(28921, 103621, 68623, 79222), Array(63521, 138721, 103823, 114222), Array(98321, 29822, 138423, 4723), Array(133520, 65321, 30223, 40422), Array(24921, 99521, 64823, 75322), Array(59421, 134221, 100423, 110322), Array(94321, 25922, 136123, 2023), Array(129820, 60321, 25723, 36822), Array(20421, 94921, 60923, 72522), Array(55321, 129621, 96023, 107422), Array(90621, 20322, 130123, 141422), Array(125720, 55521, 21323, 32822), Array(16821, 89721, 55323, 67422), Array(51121, 124321, 90123, 101822), Array(85421, 15822, 125423, 136822), Array(120820, 50121, 14923, 26822), Array(11121, 84321, 50123, 61822))
    Case 2326 To 2350: x = Array(Array(45421, 119121, 85623, 96922), Array(80321, 9922, 119823, 131222), Array(114920, 44921, 11123, 23322), Array(6221, 79221, 45723, 58722), Array(41321, 113921, 80723, 93222), Array(76421, 5522, 116523, 128822), Array(112620, 40621, 6423, 19522), Array(3421, 75321, 41523, 54822), Array(37821, 110621, 77223, 90322), Array(73221, 1922, 111423, 124222), Array(107920, 36621, 2723, 15622), Array(143020, 71021, 37523, 50622), Array(33721, 105421, 72223, 84822), Array(67721, 140521, 107723, 120422), Array(103220, 31021, 141222, 11022), Array(137620, 65021, 31723, 45922), Array(27921, 99621, 67223, 81022), Array(63621, 134721, 101123, 114722), Array(98320, 25421, 136022, 6122), Array(133120, 60021, 26823, 41422), Array(24021, 94921, 61523, 75522), Array(58221, 130221, 97223, 111122), Array(94120, 21021, 131422, 1722), Array(128920, 55421, 22423, 36722), Array(19021, 90221, 58423, 72422))
    Case 2351 To 2375: x = Array(Array(54621, 125621, 92723, 107022), Array(89420, 16321, 127622, 142821), Array(124520, 50821, 18623, 34522), Array(16221, 85721, 53323, 68522), Array(50921, 121021, 88823, 103922), Array(86820, 12121, 122922, 138621), Array(121620, 46621, 13323, 29122), Array(11121, 81421, 48923, 64422), Array(46521, 116721, 83023, 98122), Array(81020, 6921, 117722, 133021), Array(115320, 40921, 8923, 24422), Array(6321, 75621, 43523, 58422), Array(40221, 110321, 78623, 94022), Array(75620, 1021, 112722, 129321), Array(110720, 35321, 3023, 19822), Array(921, 69821, 38823, 55422), Array(37121, 105621, 73323, 89622), Array(72320, 140420, 107922, 124921), Array(106920, 31221, 143422, 16922), Array(142520, 66821, 34323, 51022), Array(33021, 101921, 69723, 86422), Array(68620, 136920, 104522, 121421), Array(103820, 27521, 139222, 11822), Array(137320, 61921, 30923, 47422), Array(28721, 97421, 65323, 82122))
    Case 2376 To 2400: x = Array(Array(63520, 131620, 99522, 117121), Array(97720, 21421, 134522, 8722), Array(133420, 56421, 25123, 42522), Array(23921, 91121, 59823, 77422), Array(59120, 125820, 94022, 112421), Array(94120, 16521, 128322, 2722), Array(127620, 50921, 19623, 37822), Array(18921, 86521, 54323, 72222), Array(54220, 121120, 88922, 106921), Array(88320, 11021, 124422, 142821), Array(123820, 46621, 15723, 33422), Array(14421, 81621, 50523, 68922), Array(49720, 116320, 85322, 104821), Array(85620, 7421, 120022, 139421), Array(119920, 41921, 11523, 30622), Array(11721, 77821, 46523, 65422), Array(47220, 112920, 80922, 100221), Array(81120, 2921, 116022, 135921), Array(116420, 38421, 7223, 26122), Array(6821, 73021, 41623, 60522), Array(41520, 107120, 76222, 95721), Array(76720, 141720, 110722, 129821), Array(110020, 31621, 1523, 20922), Array(921, 66821, 36123, 55822), Array(36220, 101420, 70122, 90621))
    Case 2401 To 2425: x = Array(Array(70320, 134920, 105122, 126121), Array(106120, 26521, 140422, 16522), Array(141320, 61721, 31123, 51322), Array(32320, 96420, 65722, 87021), Array(67920, 132020, 100822, 121821), Array(102020, 22721, 136122, 12822), Array(137220, 58321, 27323, 47822), Array(29020, 93520, 62222, 82621), Array(63020, 127120, 97522, 118321), Array(98120, 18621, 133122, 9322), Array(133020, 53621, 23523, 44422), Array(23820, 87420, 57622, 79921), Array(59320, 122320, 92422, 114321), Array(93820, 12621, 127022, 4722), Array(128720, 47721, 17523, 39322), Array(20120, 83020, 51822, 73921), Array(53820, 116520, 86322, 108921), Array(88620, 8021, 121822, 143521), Array(123720, 43121, 12423, 33922), Array(14220, 76920, 46922, 69221), Array(49420, 112020, 82422, 104121), Array(83620, 2621, 117222, 139221), Array(118420, 37721, 8123, 30722), Array(10320, 73120, 43022, 66021), Array(45020, 106820, 77922, 101321))
    Case 2426 To 2450: x = Array(Array(80520, 142520, 113722, 136321), Array(116220, 34221, 4423, 27222), Array(7020, 68320, 38622, 62621), Array(42120, 103720, 74022, 97521), Array(76520, 138420, 108722, 131921), Array(111220, 29221, 143322, 22522), Array(2620, 64220, 34122, 57321), Array(36620, 97620, 68622, 92121), Array(70920, 132620, 103922, 127021), Array(105920, 23821, 138422, 18022), Array(140619, 57220, 28022, 53021), Array(31720, 92120, 63422, 87821), Array(66720, 127020, 98222, 122221), Array(101520, 17921, 132622, 13122), Array(136919, 53620, 23822, 48521), Array(27420, 87720, 58522, 83521), Array(62120, 123020, 94222, 118421), Array(97720, 14821, 129522, 9522), Array(132819, 48520, 19622, 44521), Array(23620, 83520, 55422, 80021), Array(58420, 118720, 90422, 115021), Array(93120, 9321, 124422, 6122), Array(128719, 44520, 15622, 41621), Array(19620, 78420, 50122, 76121), Array(54520, 113420, 85322, 110721))
    Case 2451 To 2475: x = Array(Array(89820, 5221, 120222, 1622), Array(124619, 39120, 9722, 36221), Array(14920, 73920, 45122, 71021), Array(49420, 108920, 80022, 105421), Array(84020, 143220, 114022, 139721), Array(118919, 34120, 5522, 31121), Array(9320, 68020, 40122, 66021), Array(43720, 102820, 75322, 101121), Array(78920, 138420, 110322, 136821), Array(114419, 28220, 122, 27821), Array(5520, 63020, 35722, 62821), Array(40920, 98620, 71022, 97821), Array(76320, 133720, 105022, 132421), Array(111319, 25220, 140521, 24221), Array(2220, 59820, 31422, 59021), Array(36920, 94820, 66622, 93521), Array(72020, 130320, 102122, 128821), Array(107219, 20120, 135921, 19321), Array(141419, 54520, 27222, 54321), Array(31820, 89720, 62322, 89521), Array(66720, 124020, 95722, 123821), Array(101419, 14520, 130821, 15221), Array(136419, 48720, 21522, 49821), Array(27220, 83420, 56122, 84021), Array(62120, 119020, 91422, 119621))
    Case 2476 To 2500: x = Array(Array(97419, 9220, 124921, 10221), Array(131819, 43820, 16222, 45121), Array(22520, 79420, 51922, 80121), Array(58020, 114220, 85822, 114321), Array(92819, 5020, 121521, 6121), Array(127619, 39820, 12922, 41521), Array(18520, 74720, 47622, 76421), Array(53520, 110220, 83222, 112421), Array(89419, 520, 117121, 3221), Array(124419, 34920, 8322, 37921), Array(15220, 70620, 43922, 73021), Array(50720, 105620, 77322, 107121), Array(85019, 140219, 112421, 142420), Array(119319, 30720, 3522, 33321), Array(10120, 65320, 37922, 67121), Array(44520, 100120, 73122, 102421), Array(79619, 134019, 107121, 137120), Array(114019, 24120, 141821, 27721), Array(4020, 59220, 33122, 63421), Array(39720, 94120, 66722, 97821), Array(74719, 128519, 101721, 133120), Array(109719, 19420, 137421, 24421), Array(1420, 54920, 28022, 58621), Array(36220, 90420, 63522, 94621), Array(71720, 125320, 98022, 129821))
    End Select
    titi = x
End Function
Le pire, c'est que ça fonctionne.​


Bonne journée.


ℝOGER2327
#7571


Mercredi 18 Absolu 142 (Flûtes de Pan - Vacuation)
4 Vendémiaire An CCXXIII, 1,4436h - colchique
2014-W39-4T03:27:53Z
 

Pièces jointes

  • Saisons (1501-2500).xlsm
    81.5 KB · Affichages: 166

Modeste geedee

XLDnaute Barbatruc
Re : calcul des saisons

Bonsour®

De la grande élucubration comme je les aime !!!
petits soucis :
- l'année n'est pas restituée
- si supérieur à 1900 la restitution est un texte et non un numéro de série
=1*toto($A3;B$1)

:D histoire de pinailler : la précision est tronquée à la minute...
:rolleyes:

nb : Pourquoi pas un simple J'aime ce post ???
ça ne fonctionne pas sur mon poste !!!
déjà signalé au webmestre...
:cool:
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : calcul des saisons

Re...


(...)
petits soucis :
- l'année n'est pas restituée
- si supérieur à 1900 la restitution est un texte et non un numéro de série
=1*toto($A3;B$1)
(...)
Eh oui ! Du bien bourrin, on vous dit...

Pour raffiner un peu et parce que mon plus grand plaisir est de vous plaire :​
Code:
Function toto(année&, saison$, Optional num As Boolean = True)
'Application Volatile ' facultatif
Dim s, u, m, x
    If année > 2000 Then x = titi(année) Else x = tata(année)
    If IsEmpty(x) Then
        toto = ""
    Else
        s = "*" & LCase(Left$(saison, 1)) & "*"
        s = Switch("1pm" Like s, 1, "2éej" Like s, 2, "3as" Like s, 3, "4hd" Like s, 4)
        m = Array("-03-", "-06-", "-09-", "-12-")
        u = x((année - 1) Mod 25)
        s = u(s - 1) Mod 100 & m(s - 1) & année & Format((u(s - 1) \ 100) / 1440, " hh:mm")
        If num And année > 1899 Then s = CDate(s)
        toto = s
    End If
End Function
Écrire =toto(2014;4;FAUX) ou =toto(2014;4;0) pour avoir le solstice d'hiver en 2014 sous forme textuelle.
Écrire =toto(2014;4) ou =toto(2014;4;VRAI) ou =toto(2014;4;1) pour l'avoir sous forme de numéro de série.
Éventuellement, format jj-mm-aaaa hh:mm pour les cellules concernées.

(...)
histoire de pinailler : la précision est tronquée à la minute...
(...)
Sur ce coup-ci, ma fainéantise l'emporte largement sur mon envie de vous plaire...
(En fait, je n'avais pas les valeurs à la seconde au moment où j'ai écrit ce bazar. Je reprendrai peut-être la chose plus tard...)

Finalement, on s'amuse bien sur ce forum, n'est-il pas ?​


Bonne journée.


ℝOGER2327
#7572


Mercredi 18 Absolu 142 (Flûtes de Pan - Vacuation)
4 Vendémiaire An CCXXIII, 4,3744h - colchique
2014-W39-4T10:29:55Z
 

Discussions similaires