Morilog\Jalali\jDateTime::d2j PHP Method

d2j() public static method

Converts the Julian Day number to a date in the Jalaali calendar.
public static d2j ( integer $jdn ) : array
$jdn integer Julian Day number
return array 0: Jalaali year (1 to 3100) 1: Jalaali month (1 to 12) 2: Jalaali day (1 to 29/31)
    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];
    }