@@ -917,6 +917,23 @@ final class NodaTimeSplitter {
|
||||
$output->counting_time_indicator, NodaTimeBeforeAfterIndicator::until, '?', $output->end_date);
|
||||
}
|
||||
}
|
||||
if (str_ends_with($datum, "terminus ante quem")) {
|
||||
if (($spacePos = \strrpos($datum, " ", -15)) === false) {
|
||||
return false;
|
||||
}
|
||||
if ($output = self::attempt_splitting(\substr($datum, 0, $spacePos))) {
|
||||
return self::_turn_noda_split_time_to_before($output);
|
||||
}
|
||||
}
|
||||
if (\str_ends_with($datum, "termiusost quem")) {
|
||||
if (($spacePos = strrpos($datum, " ", -10)) === false) {
|
||||
return false;
|
||||
}
|
||||
if ($output = self::attempt_splitting(\substr($datum, 0, $spacePos))) {
|
||||
return new NodaSplitTime($output->start_year, '?', $output->counting_time_month, $output->counting_time_day,
|
||||
$output->counting_time_indicator, NodaTimeBeforeAfterIndicator::since, $output->start_date, '?');
|
||||
}
|
||||
}
|
||||
// Ends beginning with a hyphen
|
||||
if (\preg_match("/\-ig(\.|)$/", $datum)) {
|
||||
if (($spacePos = strrpos($datum, "-")) === false) {
|
||||
|
||||
@@ -764,6 +764,19 @@ final class NodaTimeSplitterTest extends TestCase {
|
||||
self::assertEquals($output->toTimeName(), "1920-1929");
|
||||
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 1925);
|
||||
|
||||
$output = NodaTimeSplitter::attempt_splitting("2020 (terminus ante quem)");
|
||||
self::assertNotEmpty($output);
|
||||
self::assertEquals($output->toOldFormat(), [
|
||||
0 => "?",
|
||||
1 => "2019",
|
||||
2 => "00",
|
||||
3 => "00",
|
||||
4 => "+",
|
||||
5 => "Vor",
|
||||
]);
|
||||
self::assertEquals($output->toTimeName(), "Vor 2020");
|
||||
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
|
||||
|
||||
$output = NodaTimeSplitter::attempt_splitting("Vor Dezember 2020");
|
||||
self::assertNotEmpty($output);
|
||||
self::assertEquals($output->toOldFormat(), [
|
||||
@@ -1271,6 +1284,20 @@ final class NodaTimeSplitterTest extends TestCase {
|
||||
self::assertEquals($output->toTimeName(), "Seit 1920");
|
||||
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 1920);
|
||||
|
||||
// From 1920 onwards
|
||||
$output = NodaTimeSplitter::attempt_splitting("1926 (termius post quem)");
|
||||
self::assertNotEmpty($output);
|
||||
self::assertEquals($output->toOldFormat(), [
|
||||
0 => "1926",
|
||||
1 => "?",
|
||||
2 => "00",
|
||||
3 => "00",
|
||||
4 => "+",
|
||||
5 => "Seit",
|
||||
]);
|
||||
self::assertEquals($output->toTimeName(), "Seit 1926");
|
||||
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 1926);
|
||||
|
||||
$output = NodaTimeSplitter::attempt_splitting("III. század");
|
||||
self::assertNotEmpty($output);
|
||||
self::assertEquals($output->toOldFormat(), [
|
||||
|
||||
Reference in New Issue
Block a user