diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/Date.php | 10 | ||||
| -rw-r--r-- | app/Date/CalendarDate.php | 78 | ||||
| -rw-r--r-- | app/Functions/FunctionsImport.php | 8 | ||||
| -rw-r--r-- | app/Http/Controllers/CalendarController.php | 26 |
4 files changed, 67 insertions, 55 deletions
diff --git a/app/Date.php b/app/Date.php index 97319ed39f..9552e4c407 100644 --- a/app/Date.php +++ b/app/Date.php @@ -410,11 +410,7 @@ class Date */ public function maximumDate() { - if ($this->date2 === null) { - return $this->date1; - } - - return $this->date2; + return $this->date2 ?? $this->date1; } /** @@ -424,7 +420,7 @@ class Date */ public function minimumJulianDay(): int { - return $this->minimumDate()->minJD; + return $this->minimumDate()->minimumJulianDay(); } /** @@ -434,7 +430,7 @@ class Date */ public function maximumJulianDay(): int { - return $this->maximumDate()->maxJD; + return $this->maximumDate()->maximumJulianDay(); } /** diff --git a/app/Date/CalendarDate.php b/app/Date/CalendarDate.php index 8315a42d28..f0ac1d735e 100644 --- a/app/Date/CalendarDate.php +++ b/app/Date/CalendarDate.php @@ -81,10 +81,10 @@ class CalendarDate public $d; /** @var int Earliest Julian day number (start of month/year for imprecise dates) */ - public $minJD; + private $minimum_julian_day; /** @var int Latest Julian day number (end of month/year for imprecise dates) */ - public $maxJD; + private $maximum_julian_day; /** * Create a date from either: @@ -98,8 +98,8 @@ class CalendarDate { // Construct from an integer (a julian day number) if (is_int($date)) { - $this->minJD = $date; - $this->maxJD = $date; + $this->minimum_julian_day = $date; + $this->maximum_julian_day = $date; list($this->y, $this->m, $this->d) = $this->calendar->jdToYmd($date); return; @@ -127,8 +127,8 @@ class CalendarDate } // Contruct from a CalendarDate - $this->minJD = $date->minJD; - $this->maxJD = $date->maxJD; + $this->minimum_julian_day = $date->minimum_julian_day; + $this->maximum_julian_day = $date->maximum_julian_day; // Construct from an equivalent xxxxDate object if (get_class($this) == get_class($date)) { @@ -155,7 +155,7 @@ class CalendarDate $jd = $date->calendar->ymdToJd($today[0], $date->m, $date->d == 0 ? $today[2] : $date->d); } else { // Complete date - $jd = (int) (($date->maxJD + $date->minJD) / 2); + $jd = (int) (($date->maximum_julian_day + $date->minimum_julian_day) / 2); } list($this->y, $this->m, $this->d) = $this->calendar->jdToYmd($jd); // New date has same precision as original date @@ -172,6 +172,22 @@ class CalendarDate } /** + * @return int + */ + public function maximumJulianDay(): int + { + return $this->maximum_julian_day; + } + + /** + * @return int + */ + public function minimumJulianDay(): int + { + return $this->minimum_julian_day; + } + + /** * Is the current year a leap year? * * @return bool @@ -189,18 +205,18 @@ class CalendarDate public function setJdFromYmd() { if ($this->y == 0) { - $this->minJD = 0; - $this->maxJD = 0; + $this->minimum_julian_day = 0; + $this->maximum_julian_day = 0; } elseif ($this->m == 0) { - $this->minJD = $this->calendar->ymdToJd($this->y, 1, 1); - $this->maxJD = $this->calendar->ymdToJd($this->nextYear($this->y), 1, 1) - 1; + $this->minimum_julian_day = $this->calendar->ymdToJd($this->y, 1, 1); + $this->maximum_julian_day = $this->calendar->ymdToJd($this->nextYear($this->y), 1, 1) - 1; } elseif ($this->d == 0) { list($ny, $nm) = $this->nextMonth(); - $this->minJD = $this->calendar->ymdToJd($this->y, $this->m, 1); - $this->maxJD = $this->calendar->ymdToJd($ny, $nm, 1) - 1; + $this->minimum_julian_day = $this->calendar->ymdToJd($this->y, $this->m, 1); + $this->maximum_julian_day = $this->calendar->ymdToJd($ny, $nm, 1) - 1; } else { - $this->minJD = $this->calendar->ymdToJd($this->y, $this->m, $this->d); - $this->maxJD = $this->minJD; + $this->minimum_julian_day = $this->calendar->ymdToJd($this->y, $this->m, $this->d); + $this->maximum_julian_day = $this->minimum_julian_day; } } @@ -470,11 +486,11 @@ class CalendarDate */ public static function compare(CalendarDate $d1, CalendarDate $d2): int { - if ($d1->maxJD < $d2->minJD) { + if ($d1->maximum_julian_day < $d2->minimum_julian_day) { return -1; } - if ($d2->maxJD < $d1->minJD) { + if ($d2->maximum_julian_day < $d1->minimum_julian_day) { return 1; } @@ -505,8 +521,8 @@ class CalendarDate } // Perform all calculations using the calendar of the first date - list($year1, $month1, $day1) = $this->calendar->jdToYmd($this->minJD); - list($year2, $month2, $day2) = $this->calendar->jdToYmd($date->minJD); + list($year1, $month1, $day1) = $this->calendar->jdToYmd($this->minimum_julian_day); + list($year2, $month2, $day2) = $this->calendar->jdToYmd($date->minimum_julian_day); $years = $year2 - $year1; $months = $month2 - $month1; @@ -538,10 +554,10 @@ class CalendarDate if ($this->y == 0 || $jd == 0) { return 0; } - if ($this->minJD < $jd && $this->maxJD > $jd) { + if ($this->minimum_julian_day < $jd && $this->maximum_julian_day > $jd) { return 0; } - if ($this->minJD == $jd) { + if ($this->minimum_julian_day == $jd) { return 0; } list($y, $m, $d) = $this->calendar->jdToYmd($jd); @@ -573,13 +589,13 @@ class CalendarDate if ($this->y == 0 || $jd == 0) { return ''; } - if ($this->minJD < $jd && $this->maxJD > $jd) { + if ($this->minimum_julian_day < $jd && $this->maximum_julian_day > $jd) { return ''; } - if ($this->minJD == $jd) { + if ($this->minimum_julian_day == $jd) { return ''; } - if ($jd < $this->minJD) { + if ($jd < $this->minimum_julian_day) { return '<i class="icon-warning"></i>'; } list($y, $m, $d) = $this->calendar->jdToYmd($jd); @@ -604,7 +620,7 @@ class CalendarDate } // Age in days? - return ($jd - $this->minJD) . 'd'; + return ($jd - $this->minimum_julian_day) . 'd'; } /** @@ -641,7 +657,7 @@ class CalendarDate */ public function inValidRange(): bool { - return $this->minJD >= $this->calendar->jdStart() && $this->maxJD <= $this->calendar->jdEnd(); + return $this->minimum_julian_day >= $this->calendar->jdStart() && $this->maximum_julian_day <= $this->calendar->jdEnd(); } /** @@ -845,7 +861,7 @@ class CalendarDate */ protected function formatLongWeekday(): string { - return $this->dayNames($this->minJD % $this->calendar->daysInWeek()); + return $this->dayNames($this->minimum_julian_day % $this->calendar->daysInWeek()); } /** @@ -855,7 +871,7 @@ class CalendarDate */ protected function formatShortWeekday(): string { - return $this->dayNamesAbbreviated($this->minJD % $this->calendar->daysInWeek()); + return $this->dayNamesAbbreviated($this->minimum_julian_day % $this->calendar->daysInWeek()); } /** @@ -865,7 +881,7 @@ class CalendarDate */ protected function formatIsoWeekday(): string { - return I18N::digits($this->minJD % 7 + 1); + return I18N::digits($this->minimum_julian_day % 7 + 1); } /** @@ -875,7 +891,7 @@ class CalendarDate */ protected function formatNumericWeekday(): string { - return I18N::digits(($this->minJD + 1) % $this->calendar->daysInWeek()); + return I18N::digits(($this->minimum_julian_day + 1) % $this->calendar->daysInWeek()); } /** @@ -885,7 +901,7 @@ class CalendarDate */ protected function formatDayOfYear(): string { - return I18N::digits($this->minJD - $this->calendar->ymdToJd($this->y, 1, 1)); + return I18N::digits($this->minimum_julian_day - $this->calendar->ymdToJd($this->y, 1, 1)); } /** diff --git a/app/Functions/FunctionsImport.php b/app/Functions/FunctionsImport.php index 67e527f942..2702c86cad 100644 --- a/app/Functions/FunctionsImport.php +++ b/app/Functions/FunctionsImport.php @@ -927,8 +927,8 @@ class FunctionsImport $date->minimumDate()->format('%O'), $date->minimumDate()->m, $date->minimumDate()->y, - $date->minimumDate()->minJD, - $date->minimumDate()->maxJD, + $date->minimumDate()->minimumJulianDay(), + $date->minimumDate()->maximumJulianDay(), $fact, $xref, $ged_id, @@ -942,8 +942,8 @@ class FunctionsImport $date->maximumDate()->format('%O'), $date->maximumDate()->m, $date->maximumDate()->y, - $date->maximumDate()->minJD, - $date->maximumDate()->maxJD, + $date->maximumDate()->minimumJulianDay(), + $date->maximumDate()->maximumJulianDay(), $fact, $xref, $ged_id, diff --git a/app/Http/Controllers/CalendarController.php b/app/Http/Controllers/CalendarController.php index ba9b655de0..7abcdd3208 100644 --- a/app/Http/Controllers/CalendarController.php +++ b/app/Http/Controllers/CalendarController.php @@ -256,7 +256,7 @@ class CalendarController extends AbstractBaseController switch ($view) { case 'day': - $found_facts = $this->applyFilter($calendar_service->getAnniversaryEvents($cal_date->minJD, $filterev, $tree), $filterof, $filtersx); + $found_facts = $this->applyFilter($calendar_service->getAnniversaryEvents($cal_date->minimumJulianDay(), $filterev, $tree), $filterof, $filtersx); break; case 'month': $cal_date->d = 0; @@ -266,13 +266,13 @@ class CalendarController extends AbstractBaseController $found_facts[$d] = []; } // Fetch events for each day - for ($jd = $cal_date->minJD; $jd <= $cal_date->maxJD; ++$jd) { + for ($jd = $cal_date->minimumJulianDay(); $jd <= $cal_date->maximumJulianDay(); ++$jd) { foreach ($this->applyFilter($calendar_service->getAnniversaryEvents($jd, $filterev, $tree), $filterof, $filtersx) as $fact) { $tmp = $fact->getDate()->minimumDate(); if ($tmp->d >= 1 && $tmp->d <= $tmp->daysInMonth()) { // If the day is valid (for its own calendar), display it in the // anniversary day (for the display calendar). - $found_facts[$jd - $cal_date->minJD + 1][] = $fact; + $found_facts[$jd - $cal_date->minimumJulianDay() + 1][] = $fact; } else { // Otherwise, display it in the "Day not set" box. $found_facts[0][] = $fact; @@ -386,14 +386,14 @@ class CalendarController extends AbstractBaseController echo '<tbody>'; // Print days 1 to n of the month, but extend to cover "empty" days before/after the month to make whole weeks. // e.g. instead of 1 -> 30 (=30 days), we might have -1 -> 33 (=35 days) - $start_d = 1 - ($cal_date->minJD - $week_start) % $days_in_week; - $end_d = $days_in_month + ($days_in_week - ($cal_date->maxJD - $week_start + 1) % $days_in_week) % $days_in_week; + $start_d = 1 - ($cal_date->minimumJulianDay() - $week_start) % $days_in_week; + $end_d = $days_in_month + ($days_in_week - ($cal_date->maximumJulianDay() - $week_start + 1) % $days_in_week) % $days_in_week; // Make sure that there is an empty box for any leap/missing days if ($start_d === 1 && $end_d === $days_in_month && count($found_facts[0]) > 0) { $end_d += $days_in_week; } for ($d = $start_d; $d <= $end_d; ++$d) { - if (($d + $cal_date->minJD - $week_start) % $days_in_week === 1) { + if (($d + $cal_date->minimumJulianDay() - $week_start) % $days_in_week === 1) { echo '<tr>'; } echo '<td class="optionbox wrap">'; @@ -418,22 +418,22 @@ class CalendarController extends AbstractBaseController foreach (explode('_and_', $CALENDAR_FORMAT) as $convcal) { switch ($convcal) { case 'french': - $alt_date = new FrenchDate($cal_date->minJD + $d - 1); + $alt_date = new FrenchDate($cal_date->minimumJulianDay() + $d - 1); break; case 'gregorian': - $alt_date = new GregorianDate($cal_date->minJD + $d - 1); + $alt_date = new GregorianDate($cal_date->minimumJulianDay() + $d - 1); break; case 'jewish': - $alt_date = new JewishDate($cal_date->minJD + $d - 1); + $alt_date = new JewishDate($cal_date->minimumJulianDay() + $d - 1); break; case 'julian': - $alt_date = new JulianDate($cal_date->minJD + $d - 1); + $alt_date = new JulianDate($cal_date->minimumJulianDay() + $d - 1); break; case 'hijri': - $alt_date = new HijriDate($cal_date->minJD + $d - 1); + $alt_date = new HijriDate($cal_date->minimumJulianDay() + $d - 1); break; case 'jalali': - $alt_date = new JalaliDate($cal_date->minJD + $d - 1); + $alt_date = new JalaliDate($cal_date->minimumJulianDay() + $d - 1); break; default: break 2; @@ -449,7 +449,7 @@ class CalendarController extends AbstractBaseController echo '</div>'; } echo '</td>'; - if (($d + $cal_date->minJD - $week_start) % $days_in_week === 0) { + if (($d + $cal_date->minimumJulianDay() - $week_start) % $days_in_week === 0) { echo '</tr>'; } } |
