تخطَّ إلى المحتوى الرئيسي

حاسبة فرق التاريخ مجانًا

احسب الفرق الدقيق بين تاريخين - السنوات والأشهر والأيام والأسابيع وأيام العمل (باستثناء عطلات نهاية الأسبوع) والساعات والدقائق.

يعمل دون اتصال بعد التحميل

إعدادات سريعة

اختر كلا التاريخين لمعرفة الفرق.

الاستخدامات الشائعة

  • احسب الأيام حتى تاريخ الاستحقاقالعد التنازلي لتاريخ الاستحقاق للطفل. اكتشف بالضبط كم أسابيع وأيام وساعات حتى اليوم الكبير.
  • الأيام حتى إجازتكالعد التنازلي لرحلتك مع أيام العمل والأيام الإجمالية والأسابيع المتبقية لأغراض التخطيط.
  • أيام العمل لموعد نهائي للمشروعاحسب العدد الدقيق لأيام العمل (بما في ذلك عطلات نهاية الأسبوع) بين اليوم وموعد نهائي للمشروع.
  • احسب أيام الذكرى معاًاكتشف بالضبط كم يوماً وشهراً وسنة كنت معك مع شخص مميز.
  • حاسبة فجوة العمر بين شخصيناحسب الفرق الدقيق في العمر بين أعياد ميلاد سنوات وشهور وأيام غير متطابقة.

كيف يعمل

تعمل كل الحسابات بالكامل في المتصفح باستخدام حساب UTC مكتوب يدويًا — لا مكتبة خارجية ولا طلب خادم. تحلّل الأداة سلاسل YYYY-MM-DD إلى مكونات تقويمية، وتحسب الفروق باستخدام الطوابع الزمنية بالمللي ثانية من Date.UTC() لتجنب انحراف التوقيت الصيفي، وتمر يومًا بيوم لعدّ أيام العمل من الاثنين إلى الجمعة.

  1. 1
    تحليل آمن للتواريخ
    يُتحقق من كل سلسلة تاريخ بتعبير نمطي ثم يُعاد بناؤها عبر Date.UTC() — لا new Date(string) — حتى لا يرى المستخدمون غرب UTC أبدًا انزياحًا في يوم الأسبوع بسبب تفسير المتصفح لمدخلات التاريخ فقط وفق المنطقة الزمنية المحلية.
  2. 2
    الطرح بالمللي ثانية وفق UTC
    يُحوَّل التاريخان التقويميان إلى طوابع زمنية لمنتصف الليل وفق UTC باستخدام Date.UTC(y, m, d). والقسمة الصحيحة على 86,400,000 ms تعطي عددًا دقيقًا من الأيام الكاملة لا يتأثر بانتقالات التوقيت الصيفي، التي قد تجعل اليوم يبدو 23 أو 25 ساعة.
  3. 3
    التفصيل التقويمي وعدّ أيام العمل
    يتعامل تفكيك مكتوب يدويًا إلى سنوات/أشهر/أيام مع عدم انتظام أطوال الأشهر (باستلاف أيام من الشهر السابق عند الحاجة). وتمر حلقة منفصلة على كل يوم UTC بين التاريخين وتزيد عدادًا فقط للأيام من الاثنين إلى الجمعة (getUTCDay() !== 0 أو 6)، فتنتج مجموعًا دقيقًا لأيام العمل بغض النظر عن اللغة.
  4. 4
    عرض النتائج بكل الوحدات
    تُنسَّق المجاميع بـ toLocaleString() باستخدام لغة الصفحة لتجميع الأرقام وفقها، ثم تُعرض في الوقت نفسه كسنوات/أشهر/أيام، وإجمالي الأيام، وأيام العمل، والأسابيع، والساعات، والدقائق. ويُكتب زوج التواريخ الحالي في الرابط عبر history.replaceState فيمكن حفظ أي نتيجة أو مشاركتها كرابط مباشر.

أدوات ذات صلة

الأسئلة الشائعة