كود اعلان

آخر المواضيع

طريقة التحويل ما بين التقويمين الهجري و الميلاد



طريقة التحويل ما بين التقويمين الهجري و الميلادي
كان العرب يؤرخون بالأشهر القمرية، فاعتمدوا التقويم القمري، إذ يبدأ الشهر القمري عند رؤية الهلال الجديد في الأفق الغربي بعد غروب الشمس، و يستمر الشهر القمري حتى رؤية الهلال الجديد التالي. و بقي العرب يؤرخون سنواتهم بأحداث هامة حدثت في تلك السنوات إلى أن جمع الخليفة عمر بن الخطاب رضي الله عنه الصحابة يوم الأربعاء 20 جمادى الآخرة سنة 17 للهجرة (الموافق 8/7/638 م) و تم الإجماع على اختيار وقت الهجرة ليكون بداية التقويم الإسلامي، و على الرغم من أن الهجرة حدثت يوم الاثنين 8 ربيع الأول سنة 1 للهجرة (الموافق 20/9/622 م) إلا أنه اتفق على جعل رأس السنة الهجرية هو بداية شهر محرم. 


* أول أيام التقويم الهجري


يرى البعض أن بداية التقويم الهجري (1/1/1 هـ) كان يوم الجمعة 16/07/622 م، في حين يرى آخرون أن بداية التقويم الهجري كانت يوم الخميس 15/07/622 م. فإذا رجعنا إلى الحسابات الفلكية نجد أنه لم يكن بالإمكان رؤية الهلال يوم الأربعاء 14/07/622 م بالعين المجردة من أي منطقة في العالم، و عليه فنحن نرجح أن تكون بداية التقويم الهجري يوم الجمعة 16/07/622 م. 


* اليوم اليولياني (Julian Day)


اليوم اليولياني هو بمثابة عداد أيام مستمر منذ العام 4712 قبل الميلاد، فاليوم اليولياني الموافق ليوم 01/01/2002م مثلا هو 2452276.0، أي أن عدد الأيام منذ العام 4712 قبل الميلاد و حتى 01/01/2002 هو 2452276.0 يوما. و يبدأ اليوم اليولياني عند الساعة 12 ظهرا حسب توقيت جرينتش.

* التحويل من اليوم اليولياني إلى تاريخ ميلادي و بالعكس 


إن الطريقة المستخدمة في هذه الورقة لتحويل التاريخ الميلادي إلى هجري و بالعكس، تحول فعليا اليوم اليولياني إلى تاريخ هجري، و تحول التاريخ الهجري إلى يوم يولياني، و بالتالي إذا أردنا تحويل تاريخ ميلادي إلى تاريخ هجري، علينا أولا أن نحول التاريخ الميلادي إلى يوم يولياني و من ثم نحول هذا اليوم اليولياني إلى تاريخ هجري. أما إذا أردنا تحويل التاريخ هجري إلى تاريخ ميلادي، فعلينا أولا أن نحول التاريخ الهجري إلى يوم يولياني، و من ثم نحول هذا اليوم اليولياني إلى تاريخ ميلادي. 

* التحويل من اليوم اليولياني إلى تاريخ هجري

قراءة الأكواد من الشمال إلى اليمين 
كود PHP:
L = JD - 1948440 + 10632 

N = (L - 1) / 10631 

L = L - 10631 * N + 354 

J = ((10985 - L) / 5316) * ()50 * L) / 17719) + (L/ 5670) * ((43 * L) / 15238) 

L = L – ((30 - J) / 15) * ((17719 * J) / 50) - (J/ 16) * ((15238 * J) / 43) + 29 

M = (24 * L) / 709 

D = L - (709 * M) / 24 

Y = 30 * N + J – 30  
حيث إن الرقم يستخدم 1948440 في المعادلة الأولى إذا اعتبرنا أن بداية التقويم الهجري كانت يوم الجمعة 16/07/ 622 م، أما إذا اعتبرنا أن بداية التقويم الهجريكانت يوم الخميس 15/7/622 م فعندها يجب استخدام الرقم 1948439.

JD: هو اليوم اليولياني الموافق للتاريخ الميلادي المراد تحويله، و لإيجاد اليوم اليولياني انظر الملحق (1).

M: الشهر الهجري.

D: اليوم الهجري.

Y: السنة الهجرية.

ملاحظة هامة: إن نتيجة القسمة في جميع العمليات الحسابية أعلاة يجب أن تؤخد لأكبر عدد صحيح، أي بشطب الكسور الناتجة، و لذلك يجب برمجة هذه المعادلات في الحاسوب على النحو التالي: 

كود PHP:
L = Int(JD) - 1948440 + 10632 

N = Int((L - 1) / 10631) 

L = L - 10631 * N + 354 

J = Int((10985 - L) / 5316) * Int((50 * L) / 17719) + Int(L / 5670) * Int((43 * L) / 15238) 

L = L - Int((30 - J) / 15) * Int((17719 * J) / 50) - Int(J / 16) * Int((15238 * J) / 43) + 29 

M = Int((24 * L) / 709) 

D = L - Int((709 * M) / 24) 

Y = Int(30 * N + J - 30  
* التحويل من تاريخ هجري إلى يوم يولياني

كود:

كود PHP:
JD = (11 * Y + 3) / 30 + 354 * Y + 30 * M - (M - 1) / 2 + D + 1948440 – 385  
حيث إن الرقم 1948440 يستخدم في المعادلة أعلاه إذا اعتبرنا أن بداية التقويم الهجري كانت يوم الجمعة 16/07/622 م، أما إذا اعتبرنا أن بداية التقويم الهجريكانت يوم الخميس 15/7/622 م فعندها يجب استخدام الرقم 1948439.

JD: اليوم اليولياني، و يحول إلى تاريخ ميلادي باستخدام المعادلات في الملحق (1).

Y: السنة الهجرية.

M: الشهر الهجري.

D: اليوم الهجري.

ملاحظة هامة: إن نتيجة القسمة في جميع العمليات الحسابية أعلاة يجب أن تؤخد لأكبر عدد صحيح، أي بشطب الكسور الناتجة، و لذلك يجب برمجة المعادلة أعلاه في الحاسوب على النحو التالي:


كود PHP:
JD = Int((11 * Y + 3) / 30) + Int(354 * Y) + Int(30 * M) - Int((M - 1) / 2) + D + 1948440 - 385  
تحويل اليوم اليولياني إلى تاريخ ميلادي و بالعكس
1- تحويل التاريخ الميلادي إلى يوم يولياني:


كود PHP:
-         فلتكن Y = السنة، M = الشهر، D = اليوم. 

  

-         إذا كانت M < 2  فإن: M = M, Y = Y. 

  

-         إذا كانت M = 1 أو 2، فإن (Y = Y -1)، (M = M + 12). 

  

-         إذا كان التاريخ بالتقويم الجريجوري (بعد 15/10/1582م) فإن  

     A = INT(Y/100)                  B = 2 - A  + INT (A/4) 

  

-         إذا كان التاريخ بالتقويم اليولياني (قبل 15/10/1582م) فإن  B = 0. 

  

JD = INT(365.25(Y+4716)) + INT(30.6001 (M+1)) + D + B - 1524.5  
2- تحويل اليوم اليولياني إلى تاريخ ميلادي:

[align=right]



كود PHP:
L = JD + 68569 

N = (4 * L) / 146097 

L = L – (146097  * N + 3) / 4 

I  = (4000 * (L+1))  / 1461001 

L = L – (1461 * I) / 4 + 31 

J = (80 * L) / 2447 

D = L – (2447 * J) / 80 

L = J / 11 

M = J + 2 – 12 * L  

حيث إن: 

JD: اليوم اليولياني المراد تحويله.

D: اليوم الميلادي.

M: الشهر الميلادي. 

Y: السنة الميلادية.

ملاحظة هامة: إن نتيجة القسمة في جميع العمليات الحسابية أعلاة يجب أن تؤخد لأكبر عدد صحيح، أي بشطب الكسور الناتجة.

مساحة اعلانية احترافية

Delay the page to appear for a quarter of a second

مساحة اعلانية احترافية

Hide sidepar from homepage

مساحة اعلانية احترافية