je souhaite faire un logiciel d'astrologie chinoise et sachant qu'un cycle qui commence par 1, dure 60 ans, j'aimerais trouver une équation qui me permette de trouver par exemple en quelle année astrologique je suis né, je sais que c'est le tigre de métal et que c'est le cycle 27, mais comment puis-je trouver le cycle sachant que je suis en juin 1950 et que l'année chinoise commence le 4 février et se termine le 3 février de l'année suivante, donc début du cycle (1950-27) + 1 = 1924, c'est tout ce que j'ai trouvé, mais je voudrais le mettre en pratique, c'est pourquoi je m'adresse à vous pour encore solliciter votre aide bienveillante et je vous en remercie d'avance.
Code : Tout sélectionner
;Astrologie chinoise
Structure sBrancheTerrestre
Array tSigne.s(11)
EndStructure
Structure sTigeCeleste
Array tElement.s(9)
EndStructure
Structure sYinYang
Array tYY.s(1)
EndStructure
Global *Signe.sBrancheTerrestre = AllocateMemory(SizeOf(sBrancheTerrestre))
Global *Element.sTigeCeleste = AllocateMemory(SizeOf(sTigeCeleste))
Global *YY.sYinYang = AllocateMemory(SizeOf(sYinYang))
Procedure Init()
InitializeStructure(*Signe, sBrancheTerrestre)
*Signe\tSigne(0) = "Rat"
*Signe\tSigne(1) = "Boeuf"
*Signe\tSigne(2) = "Tigre"
*Signe\tSigne(3) = "Lapin"
*Signe\tSigne(4) = "Dragon"
*Signe\tSigne(5) = "Serpent"
*Signe\tSigne(6) = "Cheval"
*Signe\tSigne(7) = "Chèvre"
*Signe\tSigne(8) = "Singe"
*Signe\tSigne(9) = "Coq"
*Signe\tSigne(10) = "Chien"
*Signe\tSigne(11) = "Porc"
InitializeStructure(*Element, sTigeCeleste)
*Element\tElement(0) = "Bois"
*Element\tElement(1) = "Bois"
*Element\tElement(2) = "Feu"
*Element\tElement(3) = "Feu"
*Element\tElement(4) = "Terre"
*Element\tElement(5) = "Terre"
*Element\tElement(6) = "Métal"
*Element\tElement(7) = "Métal"
*Element\tElement(8) = "Eau"
*Element\tElement(9) = "Eau"
InitializeStructure(*YY, sYinYang)
*YY\tYY(0) = "Yin"
*YY\tYY(1) = "yang"
EndProcedure
Procedure Fin()
FreeMemory(*Signe)
FreeMemory(*Element)
FreeMemory(*YY)
EndProcedure
Init()
For Cycle = 0 To 59
Debug Str(Cycle + 1984) + " " +Str(Cycle + 1) + " = " + *YY\tYY(Cycle % 2) + " " + *Signe\tSigne(Cycle % 12) + " " + *Element\tElement(Cycle % 10)
Next Cycle
Fin()