PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

JDToGregorian> <JDMonthName
Last updated: Fri, 11 Apr 2008

view this page in

JDToFrench

(PHP 4, PHP 5)

JDToFrench — Converte un Giorno Giuliano in una data del Calendario Repubblicano Francese

Descrizione

string jdtofrench ( int $giornogiuliano )

Converte un Giorno Giuliano in una data del calendario Repubblicano Francese.



JDToGregorian> <JDMonthName
Last updated: Fri, 11 Apr 2008
 
add a note add a note User Contributed Notes
JDToFrench
squenz at titania dot bottoms-dream dot de
06-Apr-2006 08:25
ignivs remarks have been very helpful, as older versions of the documentation had an error

Nevertheless his code example can be a bit misleading:

$julian_date = juliantojd("09","18","1793");
$french_date = jdtofrench($julian_date);
echo $french_date; //will print 1/8/2
//Enjoy

e.g. for the date of Napoleon's coup d'état (which has been November, 9, 1799)
the code will return:
"2/29/8" ;

which is WRONG: the day Napoleon overthrew the Directoire to become "Consul" of the French Republic (and later Emperor) was the
18th Brumaire (2nd month in the revolutionary calendar) of Year VIII.

The writer of the function assumed, quite reasonably in the context of the other calendar related functions, that the regular input date is JULIAN (even if this doesn't make very much sense in most contexts; converting the date of the old Russian calendar to the French revolutionary calendar might be a funny exercise, yet one which, in most cases, doesn't tend to be really necessary or helpful)

In short, to obtain a correct output, a standard date should be converted using the function gregoriantojd().

Here is a small piece of code to obtain the string data for a correctly converted gregorian date:

$arDateFrench = gregorian2FrenchDateArray(11, 9, 1799) ;

echo $arDateFrench[1] . "&nbsp;" . $arDateFrench[0] . "&nbsp;" . $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;
}
ignivs at gmail dot com
20-Jan-2006 06:16
//An example:

$julian_date = juliantojd("09","18","1793");
$french_date = jdtofrench($julian_date);
echo $french_date; //will print 1/8/2
//Enjoy

//working on a month string class with real names
//igz~
serged at noos dot fr
28-Oct-2003 09:00
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é.

JDToGregorian> <JDMonthName
Last updated: Fri, 11 Apr 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites