You are here

public static function jDateTime::d2j in Persian Date for Drupal 8 8.4

Converts the Julian Day number to a date in the Jalaali calendar.

Parameters

int $jdn Julian Day number:

Return value

array 0: Jalaali year (1 to 3100) 1: Jalaali month (1 to 12) 2: Jalaali day (1 to 29/31)

1 call to jDateTime::d2j()
jDateTime::toJalali in src/Library/Jalali/jDateTime.php
Converts a Gregorian date to Jalali.

File

src/Library/Jalali/jDateTime.php, line 287

Class

jDateTime
Class jDateTime @package Morilog\Jalali

Namespace

Drupal\persian_date\Library\Jalali

Code

public static function d2j($jdn) {
  $gy = self::d2g($jdn)[0];
  $jy = $gy - 621;
  $jCal = self::jalaliCal($jy);
  $jdn1f = self::g2d($gy, 3, $jCal['march']);
  $k = $jdn - $jdn1f;
  if ($k >= 0) {
    if ($k <= 185) {
      $jm = 1 + self::div($k, 31);
      $jd = self::mod($k, 31) + 1;
      return [
        $jy,
        $jm,
        $jd,
      ];
    }
    else {
      $k -= 186;
    }
  }
  else {
    $jy -= 1;
    $k += 179;
    if ($jCal['leap'] === 1) {
      $k += 1;
    }
  }
  $jm = 7 + self::div($k, 30);
  $jd = self::mod($k, 30) + 1;
  return [
    $jy,
    $jm,
    $jd,
  ];
}