Buenos días: El Calendario Republicano está relacionado con el campo; es el calendario de los Agricultores, Hortelanos y Jardineros. El mes Fructidor es el mes de los frutos; es el último del verano y del año para el cual le faltan cinco días para completarlo. Por eso, se le añaden cinco días (seis en los años bisiestos) llamados «Días Complementarios». Los meses están reunidos en estaciones: tres meses de otoño, tres meses de invierno, tres meses de primavera y tres meses de otoño. Cada mes consta de 30 días y es dividido en tres «décadas» de diez días: Primidi, Duodi, Tridi, Quartidi, Quintidi, Sextidi, Septidi, Octidi, Nonidi y Décadi. Cada día lleva un nombre de planta de campo, apero (siempre un Décadi), animal de campo (siempre un Quintidi) o fenómenos atmosféricos. El Año Republicano empieza el día del otoño. También se le podría llamar el «Calendario del Agricultor» o «Calendario del Campo». Décadi 30 de Fructidor de CCXXVI S2, Eiffel.
Muchas gracias, Cultor Felix, por la información. La verdad es que siento cierto entusiasmo por los calendarios. A mí me sale que hoy 28 de Fructidor del 228, pero me puedo haber equivocado. En fin, si alguien quiere calcularlo por su cuenta aquí está mi código en javascript: PHP: function JD(Ano, Mes, Dia, Hor, Min, Seg) { // Torpeyvago, GNU 2014 var AA = Ano; var MM = Mes; if (MM < 3) { AA = AA - 1; MM = MM + 12; } var AX = ~~(AA / 100); var BB = 2 - AX + ~~(AX / 4); return ~~(365.25 * (AA + 4716)) + ~~(30.6001 * (MM + 1)) + Dia + Hor / 24 + Min / 1440 + Seg / 86400 + BB - 1524.5;}function CalendarioFrances(dblJD) { // Torpeyvago, GNU 2014 var dblAnoNuevo; var lngAno; var lngMes; var lngDia; var lngDecada; var dbldeltaAR; var dblAR; var dblDec; var dblRad; var i; var Y; var strCF; var strMes = new Array(14); var strDia = new Array(11); var strSans = new Array(7); var dblAnoTropico = 365.242189236; var dblEra = 2375844.5; strMes[1] = "Vendémiaire"; strMes[2] = "Brumaire"; strMes[3] = "Frimaire"; strMes[4] = "Nivôse"; strMes[5] = "Pluviôse"; strMes[6] = "Ventôse"; strMes[7] = "Germinal"; strMes[8] = "Floréal"; strMes[9] = "Prairial"; strMes[10] = "Messidor"; strMes[11] = "Thermidor"; strMes[12] = "Fructidor"; strMes[13] = ""; strSans[1] = "Jour de la Vertu"; strSans[2] = "Jour du Génie"; strSans[3] = "Jour du Labor"; strSans[4] = "Jour de la Raison"; strSans[5] = "Jour de la Récompense"; strSans[6] = "Jour de la Révolution"; strDia[1] = "Primidi"; strDia[2] = "Duodi"; strDia[3] = "Tridi"; strDia[4] = "Quatridi"; strDia[5] = "Quintidi"; strDia[6] = "Settidi"; strDia[7] = "Septidi"; strDia[8] = "Octidi"; strDia[9] = "Nonidi"; strDia[10] = "Decadi"; Y = ~~((dblJD - 1721325.6978) / 365.2425055); dblAnoNuevo = 1721325.6978 + 365.2425055 * Y - 0.126689 * Math.pow((Y / 1000), 2) + 0.0019401 * Math.pow((Y / 1000), 3); lngAno = Math.round((dblAnoNuevo - dblEra) / dblAnoTropico, 0) + 1; lngMes = ~~((dblJD - dblAnoNuevo) / 30) + 1; lngDia = ~~(dblJD - dblAnoNuevo) % 30 + 1; lngDecada = (lngDia / 10 - ~~(lngDia / 10)) * 10; if (lngMes === 13) { strCF = lngAno + " " + strSans[lngDia]; } else { strCF = lngAno + " " + strMes[lngMes] + " " + lngDia; } return strCF;} También lo tengo en BASIC por si alguien lo quiere.
Bueno, pues también lo pongo, y solucionado : PHP: Public Function DíaJuliano(Día As Date) As Double ' Torpeyvago, GNU 2014' DíaJuliano = Día + 2415018.5End FunctionPublic Function CalendarioFrancés(dblJD As Double) As String ' Torpeyvago, GNU 2014' Dim dblAñoNuevo As Double Dim lngAño As Long Dim lngMes As Long Dim lngDía As Long Dim strMes(1 To 13) As String Dim strDía(1 To 10) As String Dim strSans(1 To 6) As String Dim lngDécada As Long Dim dbldeltaAR As Double Dim dblAR As Double Dim dblDec As Double Dim dblRad As Double Dim dblT(-1 To 1) As Double Dim dblV(-1 To 1) As Double Dim i As Long Const dblAñoTrópico = 365.242189236 Const dblEra = 2375844.5 strMes(1) = "Vendémiaire" strMes(2) = "Brumaire" strMes(3) = "Frimaire" strMes(4) = "Nivôse" strMes(5) = "Pluviôse" strMes(6) = "Ventôse" strMes(7) = "Germinal" strMes(8) = "Floréal" strMes(9) = "Prairial" strMes(10) = "Messidor" strMes(11) = "Thermidor" strMes(12) = "Fructidor" strMes(13) = "" strSans(1) = "Jour de la Vertu" strSans(2) = "Jour du Génie" strSans(3) = "Jour du Labor" strSans(4) = "Jour de la Raison" strSans(5) = "Jour de la Récompense" strSans(6) = "Jour de la Révolution" strDía(1) = "Primidi" strDía(2) = "Duodi" strDía(3) = "Tridi" strDía(4) = "Quatridi" strDía(5) = "Quintidi" strDía(6) = "Sextidi" strDía(7) = "Septidi" strDía(8) = "Octidi" strDía(9) = "Nonidi" strDía(10) = "Decadi" 'Cálculo del año nuevo SolRaDecR dblJD, dblAR, dblDec, dblRad dbldeltaAR = dblAR - Pi ' 12h If dbldeltaAR < 0 Then dbldeltaAR = dbldeltaAR + PiDos dblT(0) = dblJD - dbldeltaAR / PiDos * dblAñoTrópico dblT(-1) = dblT(0) - 2 dblT(1) = dblT(0) + 2 For i = -1 To 1 SolRaDecR dblT(i), dblAR, dblDec, dblRad dblV(i) = dblAR Next i dblT(0) = dblInterInv(Pi, dblT(), dblV) dblT(-1) = dblT(0) - 0.5 dblT(1) = dblT(0) + 0.5 For i = -1 To 1 SolRaDecR dblT(i), dblAR, dblDec, dblRad dblV(i) = dblAR Next i dblAñoNuevo = dblInterInv(Pi, dblT(), dblV) lngAño = Round((dblAñoNuevo - dblEra) / dblAñoTrópico, 0) + 1 lngMes = (dblJD - dblAñoNuevo) \ 30 + 1 lngDía = (dblJD - dblAñoNuevo) Mod 30 + 1 lngDécada = (lngDía / 10 - Int(lngDía / 10)) * 10 If lngMes = 13 Then CalendarioFrancés = Format(lngAño) & " " & strSans(lngDía) Else CalendarioFrancés = Format(lngAño) & " " & strMes(lngMes) & " " & Format(lngDía, "00") & ", " & strDía(lngDécada) & " " & String(Int(lngDía / 10) + 1, "I") End IfEnd Function
Hola: Puede que me equivoqué pero el día del equinoccio de otoño es cuando empieza el Año Nuevo y, según WKPD, es el CCXXVII (227). S2, Eiffel.
Hola: Ya hemos terminado con la serie de los meses. Para llegar a fin de año, se añaden 5 ó 6 días complementarios. Son los «sans-culottides» (epagómenos). 1. Día de la Virtud 2. Día del Genio 3. Día del Trabajo 4. Día de la Opinión 5. Día de las Recompensas 6. Día de la Revolución (sólo en los años bisiestos). El término «sans-culottides» viene de «sans-culotte». (ver https://es.wikipedia.org/wiki/Sans_culottes). S2, Eiffel.