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];
}