Split times in more cases (300-20 BC, 300-4000 CE)

This commit is contained in:
2025-04-08 15:16:25 +02:00
parent 00638152cf
commit 7a2856ffad
2 changed files with 70 additions and 2 deletions

View File

@ -669,7 +669,27 @@ final class NodaTimeSplitter {
if (\preg_match("/^[0-9]{4}\-[0-9]{3}$/", $datum)) { // Hungarian Y-m
$start = \substr($datum, 0, 4);
$end = \substr($datum, -3);
return new NodaSplitTime("0" . $start, "0" . $end);
return new NodaSplitTime($start, "0" . $end);
}
// 2-3 (n. Chr.)
if (\preg_match("/^[0-9]{1}\-[0-9]{1}$/", $datum)) {
return new NodaSplitTime("000" . \substr($datum, 0, 1), "000" . \substr($datum, -1));
}
// 300-2 (v. Chr.)
if (\preg_match("/^[0-9]{3}\-[0-9]{2}$/", $datum)) {
return new NodaSplitTime("0" . \substr($datum, 0, 3), "00" . \substr($datum, -2));
}
// 30-2 (v. Chr.)
if (\preg_match("/^[0-9]{2}\-[0-9]{1}$/", $datum)) {
return new NodaSplitTime("00" . \substr($datum, 0, 2), "000" . \substr($datum, -1));
}
// 2-300 (n. Chr.)
if (\preg_match("/^[0-9]{1}\-[0-9]{3}$/", $datum)) {
return new NodaSplitTime("000" . \substr($datum, 0, 1), "0" . \substr($datum, -3));
}
// 20-30 (n. Chr.)
@ -679,6 +699,18 @@ final class NodaTimeSplitter {
return new NodaSplitTime("00" . $start, "00" . $end);
}
// 20-130 (n. Chr.)
if (\preg_match("/^[0-9]{2}\-[0-9]{3}$/", $datum)) { // 20-40 (n. Chr.)
$start = \substr($datum, 0, 2);
$end = \substr($datum, -3);
return new NodaSplitTime("00" . $start, "0" . $end);
}
// 120-1130 (n. Chr.)
if (\preg_match("/^[0-9]{3}\-[0-9]{4}$/", $datum)) { // 20-40 (n. Chr.)
return new NodaSplitTime("0" . \substr($datum, 0, 3), \substr($datum, -4));
}
// 1920
if (\preg_match("/^[0-9]{4}(\.|)$/", $datum)) {
$start = \substr($datum, 0, 4);