jdtofrench

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

jdtofrench将儒略日转换为法兰西共和历

说明

jdtofrench(int $julian_day): string

将儒略日转换为法兰西共和历。

参数

julian_day

儒略日作为整数

返回值

法兰西革命日期,以 "month/day/year" 格式的字符串表示

参见

添加注释

用户贡献的注释 4 个注释

1
pieterc dot depraetere at ugent dot be
14 年前
如果您要转换 1806 年 9 月 22 日之后的日期,您可以使用此函数。它有点粗糙,由于原始函数在 1806 年年中终止,因此它使用 1805 年作为其 "terminus post quem"。
<?php
function extended_jdtofrench ($juliandate) {
if (
$juliandate > 2380945) {
// jdtofrench () 只接受到 1806 年 9 月的日期
$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;
}
?>
1
squenz at titania dot bottoms-dream dot de
18 年前
以下是一小段代码,用于获取正确转换的格里高利日期的字符串数据

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

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

/* 输出结果将是:
18 霜月八年

*/

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

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

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

// 获取月份名称
$monthname = FrenchMonthNames($arD[0]) ;

/* 将年份数字转换为罗马数字(大多数历史学家和当时的文献都是这样做的) */
$stryear = decrom($arD[2]) ;
return array(
$monthname, $arD[1], $stryear ) ;
}

function
FrenchMonthNames($mo)
{
/* 这些名称是法布尔·德·埃格朗坦发明的,他是一位二流或三流的诗人,主要写田园诗,每个名称都指的是农历年中的相应时期;例如,“雾月”(大约是九月)来自“收割”,"霜月"(十月/十一月)来自“雾”等等... */


$arMo = array("葡月",
"霜月",
"雪月",
"雨月",
"风月",
"芽月",
"花月",
"草月",
"热月",
"果月",
"麦月",
"葡萄月",
"无裤汉节") ;

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;
}
?>
0
popy-dev
6 年前
还要注意,除了 jdtofrench 涵盖的范围之外,很少有日期转换器可以处理法兰西历。
-3
serged at noos dot fr
20 年前
功能非常有限

(摘自 4.3.3 版本的源代码)
这些例程只转换公元 1 年至 14 年的日期(公历 1792 年 9 月 22 日至 1806 年 9 月 22 日)。这已经涵盖了法兰西历使用的时期。

法语
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 a été utilisé.
To Top