سؤال

في محاولة لاستخدام GregorianCalendar، لقد علقت على التفرد أثناء الحوسبة عدد الأيام منذ تاريخ معين. في مترجم Scala، دخلت:

giveacodicetagpre.

لا أعرف إذا كانت حقيقة أن عام 1976 مسائل سنة قفزة، ولكن يجب أن تكون قد تم فصل Days1 و Days2 بمقدمة 1. هذه هي اللحظة الوحيدة في التاريخ منذ عام 1970 التي تحدث هذه التفرد.

الرغبة في معرفة ما يجري، أحسب الفرق بين التواريخ التي سبق ذكرها، وهذا يعطيني فقط 23 ساعة من الفرق!ماذا حدث في ذلك التاريخ؟يبدو أن ويكيبيديا لا يقول شيئا عن ذلك.

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

هل كانت مفيدة؟

المحلول

إذا كان خيار قسم تعويم غير متوفر، فإن أفضل إجابة يمكنني التفكير فيها هي إضافة ساعة واحدة (1000 * 3600) أثناء الحوسبة الفرق بين يومين:

giveacodicetagpre.

يجب أن تعمل مقابل كل تاريخ، كما لا تعاني من ساعات قفزة بعد الآن.

نصائح أخرى

المشكلة

أيام الادخار النهار ليست سوى 23 ساعة فقط.

و وفقا ل هذا 28 مارس، 1976 كان يوم مدخرات النهار في الأقل باريس. الساعة الواحدة بين 1 صباحا و 2 صباحا في ذلك اليوم لم تكن موجودة ببساطة.

على الرغم من أنه يجب أن تكون مشكلة لغة نظرا لجهاز الكمبيوتر الخاص بي، أخرجها بشكل صحيح:

giveacodicetagpre.

أنا لست في باريس أو في أي مكان آخر كان لديه تغيير الوقت في ذلك اليوم؛ تغير الوقت في 25 أبريل 1976 حيث أنا. لذلك أحصل على سلوك "يوم تخطي" في ذلك التاريخ:

giveacodicetagpre.

نقاط erwin في التعليقات التي يعاني منها السبب المحتمل في ملاحظة الفرق التاريخي الوحيد الخاص بك هنا هو إزاحة جميع أيام الادخار النهار الأخرى من خلال أيام 25 ساعة التي تحدث أيضا في تلك السنوات، عند يوم الادخار الصيفي يتم تصحيحه.

الحل

استخدم مكتبة أفضل لمعالجة التاريخ. مكتبة joda قام بها المكتبة بشكل صحيح (بالإضافة إلى كونها إطارا أفضل في وقت / وقت):

giveacodicetagpre.

أشار DHG إلى ما أعتقد أنه هذا اليوم هو يوم "التوقيت الصيفي" اليوم. كما هو الحال في هذا اليوم فقط 23 ساعة طويلة، قسم Euclidian قبل يوم يساوي 0.

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

بدلا من قسم euclidian (عدد صحيح)، حاول القيام بشعبة تعويم، ثم تقريب النتيجة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top