Allow automatic translations of days before 1000 CE

This commit is contained in:
2020-09-26 16:02:18 +02:00
committed by Stefan Rohde-Enslin
parent b405855fc2
commit c9d8d4bdbd
4 changed files with 133 additions and 4 deletions

View File

@ -492,19 +492,32 @@ final class NodaTimeSplitter {
return [$start, $end, "00", "00", "+", ""];
}
if (preg_match("/^[0-9][0-9]\.[0-9]\.[0-9][0-9][0-9][0-9]$/", $datum)) { // German T.MM.JJJJ
// German TT.MM.JJJJ / TT.MM.JJJ / TT.MM.JJ / TT.MM.J
if (preg_match("/^[0-9][0-9]\.[0-9][0-9]\.([0-9][0-9][0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9]|[0-9])$/", $datum)) { // German T.MM.JJJJ
$start = substr($datum, 6, 4);
$month = substr($datum, 3, 2);
$day = substr($datum, 0, 2);
return [$start, $start, $month, $day, "+", ""];
}
// German TT.M.JJJJ / TT.M.JJJ / TT.M.JJ / TT.M.J
if (preg_match("/^[0-9][0-9]\.[0-9]\.([0-9][0-9][0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9]|[0-9])$/", $datum)) { // German T.MM.JJJJ
$start = substr($datum, 5, 4);
$month = "0" . substr($datum, 3, 1);
$day = substr($datum, 0, 2);
return [$start, $start, $month, $day, "+", ""];
}
if (preg_match("/^[0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9]$/", $datum)) { // German T.MM.JJJJ
// German T.MM.JJJJ / T.MM.JJJ / T.MM.JJ / T.MM.J
if (preg_match("/^[0-9]\.[0-9][0-9]\.([0-9][0-9][0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9]|[0-9])$/", $datum)) {
$start = substr($datum, 5, 4);
$month = substr($datum, 2, 2);
$day = "0" . substr($datum, 0, 1);
return [$start, $start, $month, $day, "+", ""];
}
if (preg_match("/^[0-9]\.[0-9]\.[0-9][0-9][0-9][0-9]$/", $datum)) { // German T.M.JJJJ
// German T.M.JJJJ / T.M.JJJ / T.M.JJ / T.M.J
if (preg_match("/^[0-9]\.[0-9]\.([0-9][0-9][0-9][0-9]|[0-9][0-9][0-9]|[0-9][0-9]|[0-9])$/", $datum)) {
$start = substr($datum, 4, 4);
$month = "0" . substr($datum, 2, 1);
$day = "0" . substr($datum, 0, 1);