Compare commits

..

3 Commits

3 changed files with 48 additions and 0 deletions

View File

@@ -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) {

View File

@@ -50,6 +50,7 @@ final class NodaUncertaintyHelper {
"Vermutl. ",
"vermutlich ",
"Vermutlich ",
"vmtl. ",
"wahrscheinlich ",
"Wahrscheinlich ",
"wohl ",
@@ -98,6 +99,7 @@ final class NodaUncertaintyHelper {
];
public const TIME_UNCERTAINTY_PREFIXES = [
"angeblich ",
"c. ",
"ca ",
"ca. ",
@@ -122,6 +124,8 @@ final class NodaUncertaintyHelper {
"Vermutlich ",
"vermutlich um ",
"Vermutlich um ",
"vmtl. ",
"Vmtl. ",
"wohl ",
"wohl um ",
"Wohl ",

View File

@@ -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(), [