Compare commits

...

4 Commits

3 changed files with 58 additions and 6 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. ",
@@ -109,19 +111,25 @@ final class NodaUncertaintyHelper {
"circa ",
"etwa ",
"Etwa ",
"evtl ",
"Evtl ",
"evtl.",
"Evtl.",
"gegen ",
"um ",
"Um ",
"verm. ",
"Verm. ",
"vermtl. ",
"Vermtl. ",
"vermutl. ",
"Vermutl. ",
"verm.",
"Verm.",
"vermtl.",
"Vermtl.",
"vermutl.",
"Vermutl.",
"vermutlich ",
"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(), [