آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تبدیل تاریخ شمسی به میلادی

Pouya Asgharnejad Tehran  9 سال پیش  9 سال پیش
0 0

با سلام؛

میخواستم بپرسم که چجوری میشه شبیه روش استاد، تاریخ شمسی رو به میلادی تبدیل کرد؟ توی سایتای مختلف الگوریتم های فوق العاده پیچیده وجود داره که آدم متوجه عملکردش نمیشه و ممکنه خطا داشته باشه. اما اگه شبیه الگوریتم استاد باشه هم بهینه هست و هم بدون خطا.

لطفا راهنمایی کنید.

ممنون

 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
سجاد عباسی  9 سال پیش
+1 0

پیدا کردن سال های جلالی کبیسه خیلی سخت تر از پیدا کردن  سال های کبیسه میلادی هست و نمیشه به اون راحتی پیادش کرد.

پاسخ به سوال 
Ebi  9 سال پیش
+1 0

 پاسخ صحیح

سلام من با این کار میکنم تا حالا که به مشکلی بر نخورده.امیدوارم برای شمام مفید باشه

function jalali_to_gregorian($jy,$jm,$jd,$mod=''){
date_default_timezone_set('GMT');
$gy=($jy<=979)?621:1600;
$jy-=($jy<=979)?0:979;
$days=(365*$jy) +(((int)($jy/33))*8) +((int)((($jy%33)+3)/4))
+78 +$jd +(($jm<7)?($jm-1)*31:(($jm-7)*30)+186);
$gy+=400*((int)($days/146097));
$days%=146097;
if($days > 36524){
$gy+=100*((int)(--$days/36524));
$days%=36524;
if($days >= 365)$days++;
}
$gy+=4*((int)(($days)/1461));
$days%=1461;
$gy+=(int)(($days-1)/365);
if($days > 365)$days=($days-1)%365;
$gd=$days+1;
foreach(array(0,31,(($gy%4==0 and $gy%100!=0) or ($gy%400==0))?29:28
,31,30,31,30,31,31,30,31,30,31) as $gm=>$v){
if($gd<=$v)break;
$gd-=$v;
}
return($mod=='')?array("year_miladi"=>$gy,"month_miladi"=>$gm,"day_miladi"=>$gd):$gy.$mod.$gm.$mod.$gd;
}
0 0
این سورس معروف jdf هست و معتبره؛ بیزحمت اگه میتونید خط به خط این کد پیچیده رو تفسیر کنید! (9 سال پیش)
+2 0
نیاز به تفسیرش پیدا نکردم وگرنه لازم میشد حتما تفسیر میکردم.همین که کارمو راه میندازه کافیه (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .