كيفية التحقق من صحة حساب التقويم الصيني
التواريخ المرجعية
تحقّق من تحويل التواريخ القمرية وتوقيت الفصول الشمسية وتصنيفات التقويم التقليدي وسلوك الواجهة كلًّا على حدة. فالاتفاق في جزء لا يثبت صحة الأجزاء الأخرى. وتشمل مجموعة الفحوص المفيدة حدود الأشهر والسنوات، إلى جانب تواريخ داخل الشهر.
اختر مرجعًا مستقلًا يبيّن القاعدة التقويمية التي يتبعها ونطاق تغطيته. فقد يكرر موقع ثانٍ يستخدم محرك الحساب نفسه الأخطاء ذاتها. وسجّل طبعة المرجع أو إصداره إلى جانب القيم المتوقعة، حتى يمكن تتبع أي تغيير لاحق.
يدعم الأطلس التواريخ المدنية من 1 ميلادية إلى 2100. ويستخدم محرك الحساب ذو الإصدار المثبَّت التواريخ المدنية اليوليانية حتى 1582-10-04، ثم الغريغورية بدءًا من 1582-10-15. ولا تظهر التواريخ من 5 أكتوبر إلى 14 أكتوبر في تسلسل التواريخ المدنية هذا. أما المقارنة باستخدام التقويم الغريغوري مع تمديد قواعده إلى ما قبل اعتماده، وهو ما يُسمى التقويم الغريغوري الاستباقي، فتختبر مطابقة مختلفة للتواريخ الأقدم.
تصف هذه القاعدة تسميات التواريخ المدنية في البرنامج. وهي لا تثبت أي تقويم استُخدم تاريخيًا في الصين. اختبر طرفي النطاق المدعوم وكيفية التعامل مع التواريخ الواقعة خارجهما. كما يختلف نطاق التواريخ المدنية عن نطاق السنوات القمرية الكاملة، التي تقع حدودها في أيام مختلفة.
خزّن كل نتيجة متضمنة التاريخ المدني كاملًا وقاعدته التقويمية، والسنة القمرية، ورقم الشهر القمري، وعلامة الكبس، واليوم القمري. وميّز الشهر المرقم من موضعه في السنة: فالشهر السادس الكبيس هو الشهر السابع في الترتيب الزمني، لكن رقم شهره يظل ستة.
حالات الاختبار
فحوص التواريخ الدقيقة
تغطي هذه التواريخ رأس السنة الصينية، ويومًا كبيسًا غريغوريًا صحيحًا، وبدايتي الأشهر القمرية العادية والكبيسة ونهايتيها. وفي هذا الجدول، تسمية السنة القمرية هي السنة الغريغورية التي تبدأ فيها تلك السنة القمرية. وتعني «عادي» أن علامة الكبس غير مفعَّلة.
| التاريخ الغريغوري | السنة القمرية | الشهر | النوع | اليوم القمري |
|---|---|---|---|---|
| 2024-02-09 | 2023 | 12 | عادي | 30 |
| 2024-02-10 | 2024 | 1 | عادي | 1 |
| 2024-02-29 | 2024 | 1 | عادي | 20 |
| 2025-07-24 | 2025 | 6 | عادي | 30 |
| 2025-07-25 | 2025 | 6 | كبيس | 1 |
| 2025-08-22 | 2025 | 6 | كبيس | 29 |
| 2025-08-23 | 2025 | 7 | عادي | 1 |
| 2033-12-21 | 2033 | 11 | عادي | 30 |
| 2033-12-22 | 2033 | 11 | كبيس | 1 |
| 2034-01-19 | 2033 | 11 | كبيس | 29 |
| 2034-01-20 | 2033 | 12 | عادي | 1 |
| 2034-02-19 | 2034 | 1 | عادي | 1 |
اختبر كل تاريخ في الاتجاهين. ينبغي أن ينتج التحويل من الغريغوري إلى القمري الحقول القمرية الأربعة كلها، وأن يستعيد التحويل من القمري إلى الغريغوري التاريخ المذكور. ثم اختبر التسلسل كاملًا حول الحدّ الفاصل، لا يومه الأول وحده. فهذا يميز بداية شهر خاطئة من تسمية عرض تُسقط علامة الكبس.
لا يكفي التحويل ذهابًا وإيابًا وحده لإثبات الدقة. فقد تتشارك دالتان الجدول الخاطئ نفسه، ومع ذلك تعكس كل منهما الأخرى تمامًا. وتُعدّ المقارنة بقيم متوقعة مستقلة فحصًا منفصلًا. وينبغي أن تسجّل المقارنة الشاملة عدد التواريخ التي قورنت، والمرجع المستخدم، وكل موضع عدم تطابق.
فحوص البنية والمدخلات
| الفحص | السلوك المتوقع |
|---|---|
| التقدم من آخر يوم في شهر قمري | الوصول إلى اليوم الأول من الشهر التالي زمنيًا، مع رقم الشهر وعلامة الكبس والسنة القمرية الصحيحة |
| التقدم من شهر عادي إلى شهره الكبيس | تكرار رقم الشهر وتفعيل علامة الكبس |
| التقدم من شهر كبيس إلى الشهر التالي | إلغاء علامة الكبس والتقدم في رقم الشهر، بما في ذلك أي انتقال لازم إلى سنة جديدة |
| طلب اليوم 30 من الشهر السادس الكبيس ذي الأيام الـ29 في 2025 | رفض التاريخ القمري غير الموجود |
| طلب شهر كبيس في سنة لا يوجد فيها ذلك الشهر الكبيس | رفضه بدلًا من إحلال الشهر العادي محله |
| إدخال 29 فبراير 2000، ثم 29 فبراير 2100 | قبول التاريخ الغريغوري الأول ورفض الثاني |
| إدخال 29 فبراير 1500 وفق القاعدة اليوليانية للأطلس | قبوله باعتباره تاريخًا يوليانيًا صحيحًا |
| التقدم يومًا مدنيًا واحدًا من 1582-10-04 وفق قاعدة الانتقال في الأطلس | الوصول إلى 1582-10-15، بعد انقضاء يوم واحد بالضبط |
| تحويل تاريخ صحيح إلى القمري ثم إعادته | استعادة التاريخ الأصلي من دون فقدان هوية الشهر الكبيس |
يضيف التقويم اليولياني يومًا كبيسًا كل رابع سنة. وتستثني القاعدة الغريغورية السنوات المئوية ما لم تقبل القسمة على 400، ولذلك يجب أن يحدد اختبار اليوم الكبيس التقويم المدني المقصود.
تصف فحوص الرفض واجهة صارمة لإدخال التواريخ. وقد توفر المكتبة الأساسية أيضًا تسوية موثَّقة للمدخلات، مثل ترحيل يوم خارج النطاق إلى الشهر التالي. اختبر هذه السلوكيات منفصلة، بدلًا من اعتبار القيمة المسوّاة هي المدخل الأصلي.
فحوص الواجهة
اختبر تبديل اللغة وتحديث المتصفح والتنقل بين الأشهر ومدخل التقويم التقليدي بمعزل عن دوال التحويل. وينبغي أن يحافظ تبديل اللغة على التاريخ المحدد والشهر المعروض. وينبغي أن يحافظ تصفح شهر آخر على اليوم المحدد إلى أن يُختار يوم جديد. وتحقق من أن مدخل التقويم التقليدي يفتح على التاريخ الغريغوري المحلي للجهاز، وأن صفحة التاريخ الدائمة تحتفظ بتاريخها المدني المكتوب عند عرضها في منطقة زمنية أخرى.
أدرج لحظة اختبار يختلف فيها التاريخ المحلي للجهاز عن التاريخ المرجعي للتقويم. فهذا يكشف خطأ استخدام الساعة المرجعية للفلك لاختيار تاريخ مدخل التقويم التقليدي، أو استخدام ساعة المتصفح لإعادة بناء حدود الأشهر القمرية.
الفصول الشمسية والحدود الفاصلة
تحتاج مقارنة فصل شمسي إلى هوية الفصل والتاريخ المدني والوقت ومعيار التوقيت والدقة المنشورة. ضع القيمتين في التقويم المدني ومعيار التوقيت نفسيهما قبل المقارنة. فالوقت المنشور بدقة الدقيقة لا يستطيع إثبات تطابق بدقة الثانية.
اختبر التاريخ التقويمي المُسنَد بصورة منفصلة عن هامش السماح في الوقت. فقد يكون فرق أقل من دقيقة مقبولًا في عرض مقرَّب، لكنه يضع الحدث على الجانب الخطأ من منتصف الليل. ووثّق أي عدم يقين معروف عند ذلك الحدّ بعينه، بدلًا من توسيع هامش السماح لجميع التواريخ.
أدرج محاقًا وفصلًا شمسيًا رئيسيًا يقعان في التاريخ المرجعي نفسه. فالفصل الرئيسي ينتمي إلى الشهر التقويمي الجديد حتى إن سبقت لحظته الاقتران. وقد يُغفل اختبار يعتمد فقط على ترتيب أوقات الأحداث هذا التمييز.
بالنسبة إلى ترقيم الأشهر الكبيسة، أدرج تسلسل 2033–2034. فالشهر الثامن العادي من 2033 والشهر الأول من 2034 لا يحتويان على فصل شمسي رئيسي، بينما يكون الشهر الكبيس الواقع بينهما هو الحادي عشر. وسيفشل في هذه الفحوص أي حساب يعتبر كل شهر بلا فصل شمسي رئيسي شهرًا كبيسًا.
فحوص التقويم التقليدي والتواريخ التاريخية
تصنيفات التقويم التقليدي
تعني يي الأنشطة الملائمة، وتعني جي الأنشطة التي ينبغي تجنبها. ولا تثبت مطابقة محاق أو تاريخ قمري صحة هذه القوائم. اختبر قواعد البحث فيها بالرجوع إلى تقليد التقويم أو مجموعة البيانات المختارة، ثم تحقّق من تسميات الأنشطة الإنجليزية بصورة منفصلة. ويجب أيضًا أن تبقى النتيجة الصريحة التي تفيد «لا يوجد» متميزة من البيانات المفقودة.
حيث يتغير تصنيف في التقويم التقليدي عند فصل شمسي، سجّل ما إذا كان حدّه بداية اليوم التقويمي لذلك الفصل أم لحظته الدقيقة. واختبر جانبي الحدّ المختار. وليس لازمًا أن تتغير تصنيفات الأشهر هذه عند بداية شهر قمري.
تحتاج غانتشي، أي دورة الجذوع والفروع، كذلك إلى حدّ معلَن للسنة. وقد تختلف تسمية السنة المبنية على رأس السنة الصينية عن التسمية المبنية على بداية الربيع، أو ليتشون، في الفترة الواقعة بين الحدّين. وقارن كل حقل وفق قاعدته المعلنة.
التحويل التاريخي
في الوثيقة التاريخية، حدّد السلالة الحاكمة أو سنة العهد، والموقع، وتسمية الشهر، ووصف الكبس، وأي يوم غانتشي مسجّل، قبل اختيار طريقة التحويل. فقد استخدمت التقاويم الأقدم طرقًا فلكية وقواعد توقيت مختلفة. ولذلك قد يختلف حساب حديث تُمدّد قواعده إلى الماضي عن التقويم الذي استُخدم فعليًا في السجل.
أبقِ النص المنسوخ وتفسيره والتاريخ المحوَّل حقولًا منفصلة. وحيث تقدم الوثيقة تاريخًا مرقمًا ويوم غانتشي معًا، اختبر اتفاقهما بدلًا من إسقاط أحدهما لكي يتوافق الآخر.