Latitude :

nb = 182 (slider from 1 to 365, step 1)
Soleil = (0, 0, 0)
c = Circle((0, 0, 0), 3, Line[(0, 0, 0), (0, 0, 1)])
A = Point(c, (nb - 1) / 365)
β = Angle(Vector[(-1, 0)], Vector[A, Soleil], xOyPlane)
inc = 0.40906101
axePoles = Line(A, A + ((-sin(inc)), 0, cos(inc)))
terre = Sphere(A, 1)
DonneLatitude = PointIn(terre)
circLat = Circle(ClosestPoint[axePoles, DonneLatitude], Distance[DonneLatitude, axePoles], axePoles)
limite = Circle(A, 1, Vector[A, Soleil])
Coucher, Lever = Intersect(circLat, limite)
Nord = Point(axePoles)
Sud = Point(axePoles)
SolsticeHiver = Point(xAxis)
SolsticeEte = Point(xAxis)
EquinoxePrintemps = Point(yAxis)
EquinoxeAutomne = Point(yAxis)
Ω = ClosestPoint(axePoles, DonneLatitude)
MidiSolaire = ClosestPoint(circLat, Soleil)
dureeJour: ((Angle[Lever, Ω, MidiSolaire] + Angle[MidiSolaire, Ω, Coucher]) / rad / π * 12)
text1 = LaTeX(dureeJour, true, true)
text2 = LaTeX(dureeJour, true, true)
text3 = LaTeX(dureeJour, true, true)
latitude: "" + (If[z(Ω) ≥ 0, "N", "S"]) + " : " + ((acos(Distance[Ω, DonneLatitude]) / π * 180)) + "°"
text5 = LaTeX(latitude, true, true)
text6 = LaTeX(latitude, true, true)
text7: "Durée du jour environ : " + (floor(dureeJour)) + " h et " + (round((60 * (dureeJour - floor(dureeJour))))) + " min.
Latitude : " + latitude + ""
terreS = Surface(x(A) - (cos(a) * cos(β + b)), y(A) - (cos(a) * sin(β + b)), sin(a), a, -1.5708, 1.5708, b, -1.5708, 1.5708)
terreD = Surface((cos(a) * cos(β + b)) + x(A), y(A) + (cos(a) * sin(β + b)), sin(a), a, -1.5708, 1.5708, b, -1.5708, 1.5708)
latitudeA = 0.7504915783575618 rad
inputBox1 = Textfield(latitudeA)
text4: "Durée du jour environ : " + (floor(dureeJour)) + " h " + (round((60 * (dureeJour - floor(dureeJour))))) + " min.
Nombre de jours après le solstice d'hiver : " + nb + ""