PHP 8.5.0 RC4 available for testing

jdtofrench

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtofrenchConvierte el número de días del calendario juliano en fecha del calendario francés republicano

Descripción

jdtofrench(int $julian_day): string

Convierte el número de días del calendario juliano en fecha del calendario francés republicano.

Parámetros

julian_day

El número del día juliano, en forma de entero

Valores devueltos

La fecha francesa republicana, en forma de string "mes/día/año".

Ver también

  • frenchtojd() - Convierte una fecha del Calendario Republicano Francés a una fecha Juliana
  • cal_from_jd() - Convierte el número de días Julianos a un calendario específico

add a note

User Contributed Notes 4 notes

up
1
pieterc dot depraetere at ugent dot be
15 years ago
If you want to convert a date later than September 22nd 1806, you could use this function. It's a bit crude and due to the fact the original function terminates in the middle of 1806, it uses 1805 as it's 'terminus post quem'.
<?php
function extended_jdtofrench ($juliandate) {
if (
$juliandate > 2380945) {
// jdtofrench () only accepts dates until september 1806
$gregorian_date = jdtogregorian ($juliandate);
$temp = explode ('/', $gregorian_date);
$year = $temp[2];
$juliandate = gregoriantojd ($temp[0], $temp[1], 1805);
$republican_date = jdtofrench ($juliandate);
$republican_date = explode ('/', $republican_date);
$diff = $year - 1805;
$republican_date[2] = $republican_date[2] + $diff;
} else {
$republican_date = jdtofrench ($juliandate);
}
return
$republican_date;
}
?>
up
1
squenz at titania dot bottoms-dream dot de
19 years ago
Here is a small piece of code to obtain the string data for a correctly converted gregorian date:

<?php
$arDateFrench
= gregorian2FrenchDateArray(11, 9, 1799) ;

echo
$arDateFrench[1] . " " . $arDateFrench[0] . " " . $arDateFrench[2] ;

/* the output will be:
18 Brumaire VIII

*/

function gregorian2FrenchDateArray($m, $d, $y)
{

$julian_date = gregoriantojd($m, $d, $y);
$french = jdtofrench($julian_date);
if(
$french == "0/0/0")
return
"" ;

$arD = split("/", $french) ;

// get the month name
$monthname = FrenchMonthNames($arD[0]) ;

/* convert the year number to roman digits (as most historians do and documents of the time did */
$stryear = decrom($arD[2]) ;
return array(
$monthname, $arD[1], $stryear ) ;
}

function
FrenchMonthNames($mo)
{
/* The names have been invented by Fabre d'Églantine, a second or rather third rank poet
of primarily pastoral poems, with each name referring to the respective period in the agricultural year; e.g. "Vendémiaire" (approx. September) is derived from "vendange" ("harvest"), "Brumaire" (Ocotober/November) from "brume" ("fog") and so on ... */


$arMo = array("Vendémiaire",
"Brumaire",
"Frimaire",
"Nivôse",
"Pluviôse",
"Ventôse",
"Germinal",
"Floréal",
"Prairial",
"Messidor",
"Thermidor",
"Fructidor",
"Sansculottide") ;

if(
$mo < count($arMo)+1)
return
$arMo[$mo-1] ;

}

function
decrom($dec){
$digits=array(
1 => "I",
4 => "IV",
5 => "V",
9 => "IX",
10 => "X",
40 => "XL",
50 => "L",
90 => "XC",
100 => "C",
400 => "CD",
500 => "D",
900 => "CM",
1000 => "M"
);
krsort($digits);
$retval="";
foreach(
$digits as $key => $value){
while(
$dec>=$key){
$dec-=$key;
$retval.=$value;
}
}
return
$retval;
}
?>
up
0
popy-dev
7 years ago
Also note that there are few date converters handling French calendar outside the jdtofrench covered range.
up
-3
serged at noos dot fr
22 years ago
Very limited function:

(extract from source of 4.3.3)
These routines only convert dates in years 1 through 14 (Gregorian dates 22 September 1792 through 22 September 1806). This more than covers the period when the calendar was in use.

Pour les fran?ais :
Ces routines ne converitssent les dates que de l'an 1 ? 14 (du 22 septembre 1792 au 22 septembre 1806). Cela couvre plus que la p?riode pendant laquelle le calendrier ? ?t? utilis?.
To Top