Main menu

Pages

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



طريقة التحويل ما بين التقويمين الهجري و الميلادي
كان العرب يؤرخون بالأشهر القمرية، فاعتمدوا التقويم القمري، إذ يبدأ الشهر القمري عند رؤية الهلال الجديد في الأفق الغربي بعد غروب الشمس، و يستمر الشهر القمري حتى رؤية الهلال الجديد التالي. و بقي العرب يؤرخون سنواتهم بأحداث هامة حدثت في تلك السنوات إلى أن جمع الخليفة عمر بن الخطاب رضي الله عنه الصحابة يوم الأربعاء 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:
JD 1948440 10632 

= (1) / 10631 

10631 354 

= ((10985 L) / 5316) * ()50 L) / 17719) + (L5670) * ((43 L) / 15238

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

= (24 L) / 709 

- (709 M) / 24 

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

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

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

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

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

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

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

Int((1) / 10631

10631 354 

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

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

Int((24 L) / 709

Int((709 M) / 24

Int(30 30  
التحويل من تاريخ هجري إلى يوم يولياني

كود:

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

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

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

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

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

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


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


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

  

-         إذا كانت M 2  فإنMY

  

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

  

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

     A INT(Y/100)                  A  INT (A/4

  

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

  

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

[align=right]



كود PHP:
JD 68569 

= (L) / 146097 

L – (146097  3) / 

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

L – (1461 I) / 31 

= (80 L) / 2447 

L – (2447 J) / 80 

11 

2 – 12 L  

حيث إن: 

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

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

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

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

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