PHP Doku:: Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution - function.jdtofrench.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatums- und zeitrelevante ErweiterungenKalenderCalendar Funktionenjdtofrench

Ein Service von Reinhard Neidl - Webprogrammierung.

Calendar Funktionen

<<jdmonthname

jdtogregorian>>

jdtofrench

(PHP 4, PHP 5)

jdtofrench Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution

Beschreibung

string jdtofrench ( int $juliandaycount )

Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution

Parameter-Liste

julianday

Ein Julianischer Tag als Integer

Rückgabewerte

Ein Französisches Revolutionsdatum als String in der Form "Monat/Tag/Yahr"

Siehe auch

  • frenchtojd() - Konvertiert ein Datum der Französischen Revolution zu einem Julianischen Datum
  • cal_from_jd() - Converts from Julian Day Count to a supported calendar


3 BenutzerBeiträge:
- Beiträge aktualisieren...
pieterc dot depraetere at ugent dot be
10.03.2010 23:04
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;
}
?>
squenz at titania dot bottoms-dream dot de
6.04.2006 17:25
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;
}
?>
serged at noos dot fr
28.10.2003 18: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é.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)