Support BCE / CE times

This commit is contained in:
Joshua Ramon Enslin 2023-10-15 19:20:16 +02:00
parent 9942c58b12
commit 37715bc3e8
Signed by: jrenslin
GPG Key ID: 46016F84501B70AE
2 changed files with 39 additions and 1 deletions

View File

@ -66,6 +66,8 @@ final class NodaTimeSplitter {
// To clean
"v.Chr." => "v. Chr.",
"v. Chr" => "v. Chr.",
"BCE" => "v. Chr.",
"CE" => "",
"vor Christus" => "v. Chr.",
];
@ -399,7 +401,7 @@ final class NodaTimeSplitter {
$datum = self::clean_input($datum);
if (\preg_match("/\ v\.\ Chr\.$/", $datum)) {
if (\str_ends_with($datum, ' v. Chr.')) {
if ($output = self::attempt_splitting(\substr($datum, 0, -8))) {
$start = \strval(-1 * \intval($output[1]));
$end = \strval(-1 * \intval($output[0]));

View File

@ -428,6 +428,42 @@ final class NodaTimeSplitterTest extends TestCase {
}
/**
* Test to check whether the HTML page is correctly generated.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
* @group ValidOutput
*
* @return void
*/
public function testSplitSimpleDatesEnglish():void {
$output = NodaTimeSplitter::attempt_splitting("1925 BCE");
self::assertEquals($output, [
0 => "-1925",
1 => "-1925",
2 => "00",
3 => "00",
4 => "-",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "1925 v. Chr.");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 1925);
$output = NodaTimeSplitter::attempt_splitting("1925 CE");
self::assertEquals($output, [
0 => "1925",
1 => "1925",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "1925");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 1925);
}
/**
* Test to check whether the HTML page is correctly generated.
*