مقارنة تواريخ AC و BC
سؤال
لديّ تطبيق مقدمة يسمح لي بمقارنة النقاط الزمنية في الأحداث باستخدام تمثيل قائم على مقدمة العلاقات الـ 13 Allen. كل حدث له نقطة بداية (Yyyy-MM-DD) ونقطة نهاية (Yyyyy-MM-DD) ويمكنني التحقق مما إذا كان حدثان حدث في نفس الوقت أو واحد قبل آخر ، وما إلى ذلك حتى اليوم الحبيبي (على سبيل المثال 1555-12-03 هو قبل 1555-12-04). إنه يعمل بشكل جيد مع ما يسمى بالتواريخ AC (Anno Domini) ، لكن الآن لدي عدد كبير من الأحداث التي حدثت قبل الميلاد (قبل المسيح). ما هي أفضل طريقة للتعامل مع أحداث BC هذه وتكون قادرة على القول ، على سبيل المثال ، أن أساس أثينا (BC 1556) هو قبل ولادة كولومبوس (1451) ..... أي فكرة أكثر من موضع ترحيب.
شكرًا،
أنا.
المحلول
كيف تقوم بتخزين تاريخك؟ إذا كان في بنيتك الخاصة ، فقم بتضمين AD أو BC ، واستخدم هذا كنوع من العلم السلبي ، حيث يعالج BC سنوات سلبية ، ويعالج سنوات إيجابية.
نصائح أخرى
أعتقد أنه يسأل عما إذا كانت تواريخك مخزنة في العديد من المتنبئين أو ما إذا كانت محددة فقط في تاريخ واحد مسند ، على سبيل المثال ، A_Date (12345 ، "12-24-2011") حيث الحقل الأول هو حقل معرف. هذا هو ، هل تخزن التواريخ كشيء مثل
a_date (event_id ، date_value)
أين تنسيق Date_value هو yyyy-mm-dd؟
أحد الحلول: تتطلب "إعلان" أو "قبل الميلاد" في سلسلة التاريخ ، مع الافتراضي "قبل الميلاد" ، ومعالجة غياب إما على أنها "إعلان".
حل آخر: إنشاء مسند جديد ، اتصل به
a_date (Elwing_id ، date_value ، flag)
حيث يكون العلم إما قبل الميلاد أو م. إذا كان العلم م ، فإن الرياضيات تستمر كالمعتاد. إذا كان العلم قبل الميلاد ، فانتقل إلى رمز جديد يقوم بالرياضيات المناسبة. سيتم تفسير تاريخ التاريخ الحالي للنموذج A_Date (event_id ، date_value) على أنه a_date (event_id ، date_value ، "ad")
هذا هو في الكود
a_date (event_id ، date_value): = a_date (event_id ، date_value ، "ad")