كيف تعمل حاسبة التاريخ
تجيب حاسبة التاريخ عن سؤالين أساسيين: كم من الوقت يفصل بين لحظتين، وما اللحظة التي تنتج عند إزاحة تاريخ معلوم بمقدار زمني ثابت. وتحت السطح، تشترك العمليتان في نهج واحد منضبط: تحليل التواريخ إلى لحظات لا لبس فيها باستخدام معيار ISO 8601، وإجراء العمليات الحسابية بالتوقيت العالمي المنسق (UTC)، وعرض النتائج مقربة إلى درجة الدقة التي يطلبها المستخدم.
تقبل الأداة تاريخ بداية وتاريخ نهاية، وتحسب المدة المنقضية بينهما، وتعبر عن تلك المدة بالأيام الكاملة زائد الساعات والدقائق والثواني المتبقية. كما يمكنها أن تأخذ تاريخًا واحدًا وإزاحة صحيحة — موجبة أو سالبة — وتعيد التاريخ الناتج بعد إضافة أو طرح عدد محدد من السنوات أو الأشهر أو الأيام. يعمل كلا الوضعين على نفس الأسس الصارمة، بحيث يكون الناتج حتميًا وقابلاً لإعادة الإنتاج.
فهم تحليل الإدخال بصيغة ISO 8601
يجب أن يتوافق كل تاريخ يدخل إلى الحاسبة مع صيغة التاريخ والوقت المدمجة لمعيار ISO 8601: YYYY-MM-DDTHH:MM:SS. يفصل الفاصل T بين التاريخ التقويمي ومكون ساعة الحائط، وتُفسر جميع الأوقات على أنها بالتوقيت العالمي المنسق (UTC) فور التحليل. لا يوجد منطقة زمنية محلية ضمنية، ولا تعديل للتوقيت الصيفي، ولا ساعة غامضة. إذا قدم المستخدم طابعًا زمنيًا جزئيًا — على سبيل المثال، تاريخ بدون وقت — تعامله الأداة على أنه منتصف الليل بالتوقيت العالمي المنسق (T00:00:00) في ذلك اليوم.
تُرفض المدخلات التي لا تتطابق مع نمط ISO 8601 رفضًا قاطعًا. تنطبق نفس الصرامة على ترتيب التواريخ: إذا سبق تاريخ النهاية تاريخ البداية، لا ينتج عن الحساب مدة سالبة. بدلاً من ذلك، تعتبر الأداة الإدخال غير صالح وتتوقف، مما يمنع المستخدم من الاعتماد على نتيجة يصعب تفسيرها. تبقي سياسة الرفض عند الانعكاس هذه فضاء النتائج نظيفًا: كل مدة معروضة هي امتداد زمني موجب.
حسابات المدة: الأيام والساعات والدقائق والثواني
عندما تحسب الأداة الوقت المنقضي بين طابعين زمنيين، تطرح أولاً ثواني حقبة Unix للحظة البداية من ثواني حقبة Unix للحظة النهاية. يمثل العدد الصحيح الناتج إجمالي الثواني المنقضية. من تلك القيمة الواحدة، تستخلص الحاسبة كل مكون يراه المستخدم:
- الأيام الكاملة هي ناتج القسمة الصحيحة لإجمالي الثواني على 86,400 (عدد الثواني في يوم UTC قياسي). والباقي هو ما يملأ خانات الساعات والدقائق والثواني.
- إجمالي الساعات هو إجمالي الثواني مقسومًا على 3,600، مقربًا إلى عدد صحيح. هذا ليس "الساعات المتبقية بعد الأيام" بل الامتداد الكامل معبرًا عنه بالساعات.
- إجمالي الدقائق وإجمالي الثواني يتبعان نفس النمط: القسمة الصحيحة لعدد الثواني الخام على 60 وعلى 1، على التوالي.
يعني تصميم القسمة الصحيحة هذا أن مدة قدرها 90,123 ثانية لا تُعرض على أنها "يوم واحد وساعة واحدة ودقيقتان و3 ثوانٍ" في مستويات العرض الإجمالية. بدلاً من ذلك، يقرأ رقم إجمالي الساعات 25 ساعة، ويقرأ إجمالي الدقائق 1,502 دقيقة، ويقرأ إجمالي الثواني 90,123 ثانية. وإلى جانب هذه الأرقام التراكمية، تعرض الأداة أيضًا المقابل مقسمًا إلى أيام كاملة زائد الساعات والدقائق والثواني المتبقية بحيث يتوفر كلا المنظورين.
الحسابات التقويمية مع إزاحات الأشهر والسنوات
إضافة أو طرح الأيام عملية مباشرة: تزيح الحاسبة الطابع الزمني الأساسي بالتوقيت العالمي المنسق بعدد الثواني المضبوط. أما الأشهر والسنوات، فتحمل أطوالاً متغيرة، لذا تستخدم الأداة نهجًا واعيًا بالتقويم.
عندما يضيف المستخدم شهرًا واحدًا إلى تاريخ، تزيد الأداة حقل الشهر مع الحفاظ على قيمة يوم الشهر — مع استثناء واحد حاسم. إذا كان الشهر الهدف يحتوي على أيام أقل من اليوم الأصلي، تثبت الحاسبة النتيجة عند آخر يوم صالح من ذلك الشهر. هذا هو تثبيت نهاية الشهر. على سبيل المثال، إضافة شهر واحد إلى 31 يناير ينتج 29 فبراير في السنة الكبيسة و28 فبراير في غيرها. يبقى مكون وقت اليوم دون تغيير طوال العملية، لذا فإن 2024-01-31T12:00:00 زائد شهر واحد يصبح 2024-02-29T12:00:00.
تعمل إزاحات السنوات بالطريقة نفسها: زيادة حقل السنة، والإبقاء على الشهر، وتثبيت اليوم إذا كان التاريخ الناتج غير صالح (الأكثر شيوعًا عند إضافة سنة واحدة إلى 29 فبراير في سنة كبيسة والهبوط في سنة غير كبيسة). الإزاحات الصحيحة فقط — الأشهر أو السنوات الكسرية غير مدعومة، لأنه لا يوجد تعريف متفق عليه عالميًا لما يعنيه نصف شهر.
مثال تطبيقي
لنأخذ تاريخ بداية 2026-01-01T00:00:00 وتاريخ نهاية 2026-01-02T01:02:03. تحسب الحاسبة الفرق بالثواني:
الامتداد هو بالضبط يوم واحد وساعة واحدة ودقيقتان و3 ثوانٍ. بالمصطلحات التراكمية، ذلك يساوي 25 ساعة و1,502 دقيقة و90,123 ثانية. تعرض الأداة جميع مستويات الدقة الأربعة جنبًا إلى جنب، بحيث يرى المستخدم كلاً من العرض المقسم (يوم كامل واحد زائد الباقي) وكل رقم على المستوى الإجمالي.
بالنسبة للحسابات التقويمية، خذ 2024-01-31T12:00:00 زائد شهر واحد. يناير فيه 31 يومًا، لذا سيكون الهدف الساذج هو 31 فبراير. ولأن فبراير فيه 29 يومًا فقط في السنة الكبيسة 2024، تثبت الأداة اليوم عند اليوم 29. يبقى مكون الوقت ثابتًا عند الظهر، لينتج 2024-02-29T12:00:00. سلوك التثبيت هذا حتمي ومتسق عبر جميع حالات حدود نهاية الشهر.
الدقة والقيود
تعمل الحاسبة بالكامل بالتوقيت العالمي المنسق (UTC) ولا تأخذ في الاعتبار إزاحات المناطق الزمنية أو انتقالات التوقيت الصيفي. تستخلص المدة مباشرة من الطوابع الزمنية المحللة بالتوقيت العالمي المنسق وتُبلغ بالثواني الكاملة، لكن هذه النتيجة لا تعكس تجربة "ساعة الحائط" لمستخدم يشهد تحولات التوقيت الصيفي. إذا احتاج مستخدم في لندن إلى معرفة عدد ساعات التوقيت المحلي التي تفصل بين لحظتين تمتدان عبر تغيير التوقيت الصيفي، فعليه تطبيق ذلك التعديل يدويًا.
الثواني الكبيسة غير مشمولة في النموذج. تعامل الأداة كل يوم بالتوقيت العالمي المنسق على أنه 86,400 ثانية بالضبط. بالنسبة للمدد التي تمتد لعقود، يمكن أن يصل الخطأ التراكمي الناتج عن تجاهل الثواني الكبيسة إلى بضع عشرات من الثواني، وهو أمر مهمل لحسابات التواريخ التقويمية لكنه ذو صلة بالاستخدام العلمي عالي الدقة.
كما أن الأداة لا تتعامل مع التواريخ التي تسبق حقبة Unix (1 يناير 1970) أو ما بعد العام 9999. تُرفض المدخلات خارج هذا النطاق. قاعدة تثبيت نهاية الشهر موثقة وتُطبق باتساق، لكن يجب أن يدرك المستخدمون أن القواعد التجارية تختلف أحيانًا — بعض العقود المالية، على سبيل المثال، تعرّف "بعد شهر من 31 يناير" على أنه 28 فبراير كل عام، بغض النظر عن كون السنة كبيسة أم لا. يتبع سلوك الأداة العرف التقويمي الشائع لنهاية الشهر، وليس أي معيار صناعي محدد.
المصادر
يحكم معيار ISO 8601 تمثيل التواريخ والأوقات ويدعم كل قرار تحليل تتخذه الأداة. المواصفة الكاملة تصدر عن المنظمة الدولية للتوحيد القياسي.
السجل التحريري
أُعدّت هذه المقالة لتصاحب إصدار وحدة حاسبة التاريخ. وهي تعكس التطبيق كما هو في أغسطس 2026. تم التحقق من المثال التطبيقي مقابل مخرجات الأداة في نفس التاريخ لضمان تطابق الأرقام مع الحساب المباشر.
توضح هذه المقالة قواعد التحليل ونطاق التواريخ المدعوم وسلوك التثبيت في الإصدار الذي تمت مراجعته. المؤلف: فريق تحرير SoupCalc آخر مراجعة: 11 أغسطس 2026.