Skip to content

Commit

Permalink
DRY up code
Browse files Browse the repository at this point in the history
  • Loading branch information
fisharebest committed Sep 26, 2014
1 parent dc0d21b commit ec82569
Show file tree
Hide file tree
Showing 16 changed files with 437 additions and 488 deletions.
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ php:
- 5.5
- 5.4
- 5.3
- hhvm

install:
- composer install --dev --no-interaction
Expand Down
8 changes: 4 additions & 4 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions src/ArabicCalendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,14 @@ public function leapYear($year) {
/**
* Convert a Julian day number into a year/month/day.
*
* @param $jd
* @param int $julian_day
*
* @return int[];
*/
public function jdToYmd($jd) {
$year = (int)((30 * ($jd - 1948439) + 10646) / 10631);
$month = (int)((11 * ($jd - $year * 354 - (int)((3 + 11 * $year) / 30) - 1948085) + 330) / 325);
$day = $jd - 29 * ($month - 1) - (int)((6 * $month - 1) / 11) - $year * 354 - (int)((3 + 11 * $year) / 30) - 1948084;
public function jdToYmd($julian_day) {
$year = (int)((30 * ($julian_day - 1948439) + 10646) / 10631);
$month = (int)((11 * ($julian_day - $year * 354 - (int)((3 + 11 * $year) / 30) - 1948085) + 330) / 325);
$day = $julian_day - 29 * ($month - 1) - (int)((6 * $month - 1) / 11) - $year * 354 - (int)((3 + 11 * $year) / 30) - 1948084;

return array($year, $month, $day);
}
Expand Down
4 changes: 2 additions & 2 deletions src/CalendarInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ public function daysInMonth($year, $month);
/**
* Convert a Julian day number into a year/month/day.
*
* @param int $jd
* @param int $julian_day
*
* @return int[]
*/
public function jdToYmd($jd);
public function jdToYmd($julian_day);

/**
* Determine whether or not a given year is a leap-year.
Expand Down
10 changes: 5 additions & 5 deletions src/FrenchCalendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,14 @@ public function leapYear($year) {
/**
* Convert a Julian day number into a year/month/day.
*
* @param $jd
* @param $julian_day
*
* @return int[];
*/
public function jdToYmd($jd) {
$year = (int)(($jd - 2375109) * 4 / 1461) - 1;
$month = (int)(($jd - 2375475 - $year * 365 - (int)($year / 4)) / 30) + 1;
$day = $jd - 2375444 - $month * 30 - $year * 365 - (int)($year / 4);
public function jdToYmd($julian_day) {
$year = (int)(($julian_day - 2375109) * 4 / 1461) - 1;
$month = (int)(($julian_day - 2375475 - $year * 365 - (int)($year / 4)) / 30) + 1;
$day = $julian_day - 2375444 - $month * 30 - $year * 365 - (int)($year / 4);

return array($year, $month, $day);
}
Expand Down
21 changes: 11 additions & 10 deletions src/GregorianCalendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,22 @@ public function leapYear($year) {
/**
* Convert a Julian day number into a year/month/day.
*
* @param $jd
* @param $julian_day
*
* @return int[];
*/
public function jdToYmd($jd) {
$a = $jd + 32044;
public function jdToYmd($julian_day) {
$a = $julian_day + 32044;
$b = (int)((4 * $a + 3) / 146097);
$c = $a - (int)($b * 146097 / 4);
$d = (int)((4 * $c + 3) / 1461);
$e = $c - (int)((1461 * $d) / 4);
$m = (int)((5 * $e + 2) / 153);
$day = $e - (int)((153 * $m + 2) / 5) + 1;

$day = $e - (int)((153 * $m + 2) / 5) + 1;
$month = $m + 3 - 12 * (int)($m / 10);
$year = $b * 100 + $d - 4800 + (int)($m / 10);
if ($year < 1) { // 0=1BC, -1=2BC, etc.
$year = $b * 100 + $d - 4800 + (int)($m / 10);
if ($year < 1) { // 0 is 1 BCE, -1 is 2 BCE, etc.
$year--;
}

Expand All @@ -84,8 +85,8 @@ public function ymdToJd($year, $month, $day) {
// 1 B.C.E. => 0, 2 B.C.E> => 1, etc.
++$year;
}
$a = (int)((14 - $month) / 12);
$year = $year + 4800 - $a;
$a = (int)((14 - $month) / 12);
$year = $year + 4800 - $a;
$month = $month + 12 * $a - 3;

return $day + (int)((153 * $month + 2) / 5) + 365 * $year + (int)($year / 4) - (int)($year / 100) + (int)($year / 400) - 32045;
Expand Down Expand Up @@ -114,7 +115,7 @@ public function easterDays($year) {
$solar = (int)(($year - 1600) / 100) - (int)(($year - 1600) / 400);

// The lunar correction
$lunar = (int)((int)(($year-1400) / 100) * 8) / 25;
$lunar = (int)((int)(($year - 1400) / 100) * 8) / 25;

// The uncorrected “Paschal full moon” date
$pfm = (3 - 11 * $golden + $solar - $lunar) % 30;
Expand All @@ -123,7 +124,7 @@ public function easterDays($year) {
}

// The corrected “Paschal full moon” date
if ($pfm == 29 || $pfm == 28 && $golden > 11) {
if ($pfm === 29 || $pfm === 28 && $golden > 11) {
$pfm--;
}

Expand Down
38 changes: 19 additions & 19 deletions src/JewishCalendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class JewishCalendar extends Calendar implements CalendarInterface {
const MAX_MONTHS_IN_YEAR = 13;

/** Place this symbol before the final letter of a sequence of numerals. */
const GERSHAYIM = "\""; // The gershayim symbol - ״
const GERSHAYIM = '"'; // The gershayim symbol - ״

/** Place this symbol after a single numeral. */
const GERESH = "'"; // The geresh symbol - ׳
Expand Down Expand Up @@ -154,16 +154,16 @@ public function leapYear($year) {
/**
* Convert a Julian day number into a year.
*
* @param int $jd
* @param int $julian_day
*
* @return int;
*/
protected function jdToY($jd) {
protected function jdToY($julian_day) {
// Generate an approximate year - may be out by one either way. Add one to it.
$year = (int)(($jd - 347998) / 365) + 1;
$year = (int)(($julian_day - 347998) / 365) + 1;

// Adjust by subtracting years;
while ($this->yToJd($year) > $jd) {
while ($this->yToJd($year) > $julian_day) {
$year--;
}

Expand All @@ -173,25 +173,25 @@ protected function jdToY($jd) {
/**
* Convert a Julian day number into a year/month/day.
*
* @param int $jd
* @param int $julian_day
*
* @return int[];
*/
public function jdToYmd($jd) {
public function jdToYmd($julian_day) {
// Find the year
$year = $this->jdToY($jd);
$year = $this->jdToY($julian_day);

// Add one month at a time, to use up the remaining days.
$month = 1;
$day = $jd - $this->yToJd($year) + 1;
$day = $julian_day - $this->yToJd($year) + 1;

while ($day > $this->daysInMonth($year, $month)) {
$day -= $this->daysInMonth($year, $month);
$month += 1;
$month++;
}

// PHP 5.4 and earlier converted non leap-year Adar into month 6, instead of month 7.
$month -= (Shim::emulateBug54254() && $month == 7 && !$this->leapYear($year)) ? 1 : 0;
$month -= (Shim::emulateBug54254() && $month === 7 && !$this->leapYear($year)) ? 1 : 0;

return array($year, $month, $day);
}
Expand All @@ -210,18 +210,18 @@ protected function yToJd($year) {
$parts = 204 + 793 * ($months % 1080);
$hours = 5 + 12 * $months + 793 * (int)($months / 1080) + (int)($parts / 1080);
$conjunction = 1080 * ($hours % 24) + ($parts % 1080);
$jd = 1 + 29 * $months + (int)($hours / 24);
$julian_day = 1 + 29 * $months + (int)($hours / 24);

if (
$conjunction >= 19440 ||
$jd % 7 === 2 && $conjunction >= 9924 && !$this->leapYear($year) ||
$jd % 7 === 1 && $conjunction >= 16789 && $this->leapYear($year - 1)
$julian_day % 7 === 2 && $conjunction >= 9924 && !$this->leapYear($year) ||
$julian_day % 7 === 1 && $conjunction >= 16789 && $this->leapYear($year - 1)
) {
$jd++;
$julian_day++;
}

// The actual year start depends on the day of the week
return $jd + self::$ROSH_HASHANAH[$jd % 7];
return $julian_day + self::$ROSH_HASHANAH[$julian_day % 7];
}

/**
Expand Down Expand Up @@ -452,15 +452,15 @@ protected function yearToHebrewNumerals($year, $alafim_geresh, $alafim, $geresha
/**
* Convert a Julian Day number into a Hebrew date.
*
* @param int $jd
* @param int $julian_day
* @param bool $alafim_garesh
* @param bool $alafim
* @param bool $gereshayim
*
* @return string $string
*/
public function jdToHebrew($jd, $alafim_garesh, $alafim, $gereshayim) {
list($year, $month, $day) = $this->jdToYmd($jd);
public function jdToHebrew($julian_day, $alafim_garesh, $alafim, $gereshayim) {
list($year, $month, $day) = $this->jdToYmd($julian_day);

return
$this->numberToHebrewNumerals($day, $gereshayim) . ' ' .
Expand Down
17 changes: 9 additions & 8 deletions src/JulianCalendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,20 +53,21 @@ public function leapYear($year) {
/**
* Convert a Julian day number into a year/month/day.
*
* @param $jd
* @param $julian_day
*
* @return int[];
*/
public function jdToYmd($jd) {
$c = $jd + 32082;
public function jdToYmd($julian_day) {
$c = $julian_day + 32082;
$d = (int)((4 * $c + 3) / 1461);
$e = $c - (int)(1461 * $d / 4);
$m = (int)((5 * $e + 2) / 153);
$day = $e - (int)((153 * $m + 2) / 5) + 1;

$day = $e - (int)((153 * $m + 2) / 5) + 1;
$month = $m + 3 - 12 * (int)($m / 10);
$year = $d - 4800 + (int)($m / 10);
$year = $d - 4800 + (int)($m / 10);
if ($year < 1) {
// 0=1BC, -1=2BC, etc.
// 0 is 1 BCE, -1 is 2 BCE, etc.
$year--;
}

Expand All @@ -84,7 +85,7 @@ public function jdToYmd($jd) {
*/
public function ymdToJd($year, $month, $day) {
if ($year < 0) {
// 1 B.C.E. => 0, 2 B.C.E> => 1, etc.
// 1 BCE is 0, 2 BCE is -1, etc.
++$year;
}
$a = (int)((14 - $month) / 12);
Expand Down Expand Up @@ -120,7 +121,7 @@ public function easterDays($year) {
}

// The corrected “Paschal full moon” date
if ($pfm == 29 || $pfm == 28 && $golden > 11) {
if ($pfm === 29 || $pfm === 28 && $golden > 11) {
$pfm--;
}

Expand Down
22 changes: 11 additions & 11 deletions src/PersianCalendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,27 +58,27 @@ public function leapYear($year) {
/**
* Convert a Julian day number into a year/month/day.
*
* @param $jd
* @param $julian_day
*
* @return int[];
*/
public function jdToYmd($jd) {
$depoch = $jd - 2121447;
$cycle = (int)($depoch / 1029983);
$cyear = $depoch % 1029983;
public function jdToYmd($julian_day) {
$depoch = $julian_day - 2121447;
$cycle = (int)($depoch / 1029983);
$cyear = $depoch % 1029983;
if ($cyear == 1029982) {
$ycycle = 2820;
} else {
$aux1 = (int)($cyear / 366);
$aux2 = $cyear % 366;
$ycycle = (int)(((2134 * $aux1) + (2816 * $aux2) + 2815) / 1028522) +
$aux1 + 1;
$aux1 = (int)($cyear / 366);
$aux2 = $cyear % 366;
$ycycle = (int)(((2134 * $aux1) + (2816 * $aux2) + 2815) / 1028522) + $aux1 + 1;
}
$year = $ycycle + (2820 * $cycle) + 474;

// If we allowed negative years, we would deal with them here.
$yday = ($jd - $this->ymdToJd($year, 1, 1)) + 1;
$yday = ($julian_day - $this->ymdToJd($year, 1, 1)) + 1;
$month = ($yday <= 186) ? ceil($yday / 31) : ceil(($yday - 6) / 30);
$day = ($jd - $this->ymdToJd($year, $month, 1)) + 1;
$day = ($julian_day - $this->ymdToJd($year, $month, 1)) + 1;

return array($year, (int)$month, (int)$day);
}
Expand Down
Loading

0 comments on commit ec82569

Please sign in to comment.