Split times in more cases (300-20 BC, 300-4000 CE)
This commit is contained in:
parent
00638152cf
commit
7a2856ffad
@ -669,7 +669,27 @@ final class NodaTimeSplitter {
|
|||||||
if (\preg_match("/^[0-9]{4}\-[0-9]{3}$/", $datum)) { // Hungarian Y-m
|
if (\preg_match("/^[0-9]{4}\-[0-9]{3}$/", $datum)) { // Hungarian Y-m
|
||||||
$start = \substr($datum, 0, 4);
|
$start = \substr($datum, 0, 4);
|
||||||
$end = \substr($datum, -3);
|
$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.)
|
// 20-30 (n. Chr.)
|
||||||
@ -679,6 +699,18 @@ final class NodaTimeSplitter {
|
|||||||
return new NodaSplitTime("00" . $start, "00" . $end);
|
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
|
// 1920
|
||||||
if (\preg_match("/^[0-9]{4}(\.|)$/", $datum)) {
|
if (\preg_match("/^[0-9]{4}(\.|)$/", $datum)) {
|
||||||
$start = \substr($datum, 0, 4);
|
$start = \substr($datum, 0, 4);
|
||||||
|
@ -174,6 +174,43 @@ final class NodaTimeSplitterTest extends TestCase {
|
|||||||
end_date: '-0018-12-31'),
|
end_date: '-0018-12-31'),
|
||||||
"18 v. Chr.",
|
"18 v. Chr.",
|
||||||
],
|
],
|
||||||
|
"843-1100" => [
|
||||||
|
"843-1100",
|
||||||
|
new NodaSplitTime('0843', '1100',
|
||||||
|
start_date: '0843-01-01',
|
||||||
|
end_date: '1100-12-31'),
|
||||||
|
"843-1100",
|
||||||
|
],
|
||||||
|
"2-7 n. Chr." => [
|
||||||
|
"2-7 n. Chr.",
|
||||||
|
new NodaSplitTime('0002', '0007',
|
||||||
|
start_date: '0002-01-01',
|
||||||
|
end_date: '0007-12-31'),
|
||||||
|
"2-7 n. Chr.",
|
||||||
|
],
|
||||||
|
"0-280 n. Chr." => [
|
||||||
|
"0-280 n. Chr.",
|
||||||
|
new NodaSplitTime('0000', '0280',
|
||||||
|
start_date: '0000-01-01',
|
||||||
|
end_date: '0280-12-31'),
|
||||||
|
"0-280 n. Chr.",
|
||||||
|
],
|
||||||
|
"280-10 v. Chr." => [
|
||||||
|
"280-10 v. Chr.",
|
||||||
|
new NodaSplitTime('-280', '-10',
|
||||||
|
counting_time_indicator: NodaCountingTimeIndicator::bce,
|
||||||
|
start_date: '-0280-01-01',
|
||||||
|
end_date: '-0010-12-31'),
|
||||||
|
"280-10 v. Chr.",
|
||||||
|
],
|
||||||
|
"28-1 v. Chr." => [
|
||||||
|
"28-1 v. Chr.",
|
||||||
|
new NodaSplitTime('-28', '-1',
|
||||||
|
counting_time_indicator: NodaCountingTimeIndicator::bce,
|
||||||
|
start_date: '-0028-01-01',
|
||||||
|
end_date: '-0001-12-31'),
|
||||||
|
"28-1 v. Chr.",
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -567,7 +604,6 @@ final class NodaTimeSplitterTest extends TestCase {
|
|||||||
"1978. július7",
|
"1978. július7",
|
||||||
"1978. július 7 elött",
|
"1978. július 7 elött",
|
||||||
"Anfang September 1903",
|
"Anfang September 1903",
|
||||||
"120-63 v. Chr.",
|
|
||||||
"0-25 n. Chr.", // Should not be splittable because 25 CE is too close to 0. 0 might actually be correct, not an artefact.
|
"0-25 n. Chr.", // Should not be splittable because 25 CE is too close to 0. 0 might actually be correct, not an artefact.
|
||||||
] as $entry) {
|
] as $entry) {
|
||||||
$output[$entry] = [$entry];
|
$output[$entry] = [$entry];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user