السلام عليكم بارك الله فيكم وجزاكم الله الف خير وجعله حجة لكم لاعليكم يارب العالمين
الاخ سالم الجعيدي
والاخوة الاعضاء
يرجى االطلاع على الكود البرمجي التالي
ولا ادري ماهو الخطا ناتج السنة صحيح
والشهر صحيح ولكن الايام
لاتاتي صحيحة وتبعت وانا احاول واتابع النص البرمجي لمدة يومين فارجو منكم ان تنظرو في هذ الكود البرمجي
واحاطتي بالمشكلة وجزاكم الله الف خير
function Hjre_To_Convert($day,$month,$year){
#التحقق اذا كان الشهر اكبر من 2 او يساوي 2
#أ = الشهر + 12
#ب = السنة الميلادية – 1
if($month<=2){
$A=$month+12;#ا
$B=$year-1;#ب
}
#وإن كان الشهر الميلادي أكبر من 2 فإن
#أ = الشهر
#ب = السنة
if($month>2){
$A=$month;#ا
$B=$year;#ب
}
#ج = ب ÷ 100 ( إحذف الكسر مطلقاً)
$J=floor($B/100);#ج
#د = ب ÷ 400 ( احذف الكسر مطلقاً )
$D=floor($B/400);#د\
#ع = 2 – ج + د
$C=2-$J+$D;#ع
#ملاحظة : إذا كان حسابك لتاريخ يقع قبل 15 أكتوبر 1582 م
#فإن ع = صفر دائماً
#التحقق من ان التاريخ اصغر من 15/10/1582م
$Checked_Date=$year.$month.$day;#التاريخ المراد فحصه
settype($Checked_Date,'int');
$OldDate=15821015;
#إن كان حسابك لتاريخ أصغر من 15 أكتوبر من عام 1582 فإن
if($Checked_Date<$OldDate){
$C=0;#ع
}
#و = ( ب + 4716 ) × 365.25 ( احذف الكسر مطلقاً )
$O=floor(($B+4716)*365.25);#و
#ز = ( أ + 1 ) × 30.6001 ( أحذف الكسر مطلقاً )
$Z=floor(($A+1)*30.6001);#ز
#ح = الأيام + ز + و + ع – 1524.5
$H=$day+$Z+$O+$C-1524.5;#ح
#ط = ح – 1937806.5
$T=$H-1937806.5;#ط
#ك = ( ط – 1 ) ÷ 10631 ( احذف الكسر مطلقاً )
$k=floor(($T-1)/10631);
#ل = ( ط + 354 ) – 10631 × ك
$L=($T+354)-10631*$k;
#م = ( 10985 – ل ) ÷ 5316 (احذف الكسر )
$M=floor((10985-$L)/5316);
#ن = ( 50 × ل ) ÷ 17719 ( احذف الكسر )
$N=floor((50*$L)/17719);
#س = ل ÷ 5670 ( احذف الكسر )
$S=floor($L/5670);
#ف = ( 43 × ل ) ÷ 15238 ( احذف الكسر )
$F=floor((43*$L)/15238);
#ق = م × ن + س × ف
$Q=$M*$N+$S*$F;
#ص = ( 30 – ق ) ÷ 15 ( احذف الكسر )
$HS=floor((30-$Q)/15);
#ر = ( 17719 × ق ) ÷ 50 ( احذف الكسر )
$R=floor((17719*$Q)/50);
#ش = ق ÷ 16 ( احذف الكسر )
$SH=floor($Q/16);
#ت = ( 15238 × ق ) ÷ 43 ( احذف الكسر )
$T=floor((15238*$Q)/43);
#ث = ل – ص × ر – ش × ت + 29
$TH=$L-$HS*$R-$SH*$T+29;
#الشهر الهجري = ( 24 × ث ) ÷ 709 ( احذف الكسر )
echo$month_hajre=floor((24*$TH)/709);
#غ = ( 709 × الشهر الهجري ) ÷ 24 ( احذف الكسر )
$khen=floor((709*$month_hajre)/24);
#اليوم الهجري = ث – غ
echo$day_hjre=$TH-$khen;
#السنة الهجرية = 30 × ك + ق – 30
echo $year_hjre=30*$k+$Q-30;
}
مع العلم ان الكود البرمجي مكتوب بلغة البرمجة php
والدالة floor لازالة الكسور وبارك الله فيكم وجزاكم الله الف خير