حقوق الطبع لهذا البحث محفوظة للمشروع الإسلامي لرصد الأهلة © 2007
المواد غير قابلة لإعادة النشر دون إذن مسبق
المشروع الإسلامي لرصد الأهلة
محمد شوكت عودة
بسم الله
الرحمن الرحيم
تكاد تخلو المراجع العربية من طريقة علمية و دقيقة
للتحويل ما بين التقويمين الهجري و الميلادي، فتذكر بعض المراجع طرقا لتحويل
السنين فقط، و تذكر أخرى طرقا غير دقيقة. فنعرض في هذه الورقة طريقة دقيقة للتحويل من التقويم الهجري إلى الميلادي و بالعكس. و هذه الطريقة تحول
اليوم الهجري إلى يوم ميلادي و بالعكس، و لا يمكن استخدامها لسنوات ما قبل الهجرة.
كان العرب يؤرخون بالأشهر القمرية، فاعتمدوا التقويم
القمري، إذ يبدأ الشهر القمري عند رؤية الهلال الجديد في الأفق الغربي بعد غروب
الشمس، و يستمر الشهر القمري حتى رؤية الهلال الجديد التالي. و بقي العرب يؤرخون
سنواتهم بأحداث هامة حدثت في تلك السنوات إلى أن جمع الخليفة عمر بن الخطاب رضي
الله عنه الصحابة يوم الأربعاء 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 ظهرا حسب توقيت جرينتش.
*
التحويل من اليوم اليولياني إلى تاريخ
ميلادي و بالعكس
إن الطريقة المستخدمة في هذه الورقة لتحويل التاريخ
الميلادي إلى هجري و بالعكس، تحول فعليا اليوم اليولياني إلى تاريخ هجري، و تحول
التاريخ الهجري إلى يوم يولياني، و بالتالي إذا أردنا تحويل تاريخ ميلادي إلى
تاريخ هجري، علينا أولا أن نحول التاريخ الميلادي إلى يوم يولياني و من ثم نحول
هذا اليوم اليولياني إلى تاريخ هجري. أما إذا أردنا تحويل التاريخ هجري إلى تاريخ
ميلادي، فعلينا أولا أن نحول التاريخ الهجري إلى يوم يولياني، و من ثم نحول هذا
اليوم اليولياني إلى تاريخ ميلادي. و لتحويل التاريخ الميلادي إلى يوم يولياني أو
العكس انظر الملحق (1).
*
التحويل من اليوم اليولياني إلى تاريخ هجري
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: السنة الهجرية.
ملاحظة هامة: إن نتيجة القسمة في جميع العمليات الحسابية
أعلاة يجب أن تؤخد لأكبر عدد صحيح، أي بشطب الكسور الناتجة، و لذلك يجب برمجة هذه
المعادلات في الحاسوب على النحو التالي:
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)
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: اليوم الهجري.
ملاحظة هامة: إن نتيجة القسمة في جميع العمليات الحسابية
أعلاة يجب أن تؤخد لأكبر عدد صحيح، أي بشطب الكسور الناتجة، و لذلك يجب برمجة المعادلة
أعلاه في الحاسوب على النحو التالي:
JD = Int((11 * Y + 3) / 30) + Int(354 * Y) +
Int(30 * M) - Int((M - 1) / 2) + D + 1948440 - 385
1- الفلك و الأنواء في التراث، د. علي عبنده، 1999م.
2-
Explanatory
Supplement to the Astronomical Almanac, P. Kenneth Seidelmann,
- فلتكن 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
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
Y = 100 * (N – 49) + I + L
حيث إن:
JD: اليوم اليولياني المراد تحويله.
D: اليوم الميلادي.
M: الشهر الميلادي.
Y: السنة الميلادية.
ملاحظة هامة: إن نتيجة القسمة في جميع العمليات الحسابية
أعلاة يجب أن تؤخد لأكبر عدد صحيح، أي بشطب الكسور الناتجة.