ForHosting KIT · أدوات المطورين

الفرق بين تاريخين بالسنوات والأشهر والأيام

تفكك هذه الحاسبة المدة بين تاريخين صريحين بصيغة ISO إلى سنوات كاملة وأشهر كاملة وأيام متبقية.

● Betaمجاني · داخل متصفحك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا

كما تعرض الاتجاه وإجمالي الأيام بإشارته. وبما أنكم تقدمون التاريخين، فلا تعتمد النتيجة أبداً على الوقت الحالي. يضمن التحقق الصارم بصيغة YYYY-MM-DD وقواعد التقويم الغريغوري الممتد والحساب المستقل عن المنطقة الزمنية تكرار الطلب نفسه في المتصفح أو API أو الاختبارات الآلية.

كيفية حساب التفصيل إلى سنوات وأشهر وأيام

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

نهايات الأشهر والسنوات الكبيسة وعكس الترتيب وUTC

لا يوجد كل يوم في كل شهر، ولذلك تطبق قواعد صريحة. إذا وصلت خطوة شهرية إلى شهر أقصر، يخفض اليوم إلى آخر يوم صالح فيه؛ فبعد 31 يناير يكون 28 أو 29 فبراير. ثم تتحقق الخوارزمية من عدم تجاوز النهاية. تتبع السنوات الكبيسة القاعدة الغريغورية: تقبل السنوات القابلة للقسمة على 4، باستثناء سنوات القرون غير القابلة للقسمة على 400. إذا سبق التاريخ الثاني الأول، يبقى مقدار التفصيل نفسه، ويشير direction إلى الخلف، ويصبح total_days سالباً. تعيد التواريخ المتساوية أصفاراً. تستخدم العملية حقول تاريخ صحيحة فقط، ولا تستعمل Date في JavaScript أو المنطقة المحلية أو التوقيت الصيفي أو الشبكة أو الساعة أو تحليلاً تابعاً للغة.

إدخال التواريخ واستخدام النتيجة استخداماً صحيحاً

قدموا from وto كسلسلتين بصيغة YYYY-MM-DD مع الأصفار البادئة. تدعم السنوات من 0001 إلى 9999. ترفض التواريخ المستحيلة والحقول الناقصة والطوابع الزمنية والصيغ الإقليمية والعبارات الطبيعية بدلاً من تخمينها. تصف years وmonths وdays معاً مدة متسلسلة من التاريخ الأسبق زمنياً؛ فلا تحولوا الشهر منفرداً إلى عدد ثابت من الأيام. يناسب total_days الفرز والمواعيد والتخزين كقيمة واحدة، بينما يبين direction التقدم أو التراجع أو التساوي. تشمل الاستخدامات مدة العضوية والخدمة والمشروعات، ومقارنة التواريخ التاريخية، والقواعد التعاقدية القابلة للتكرار. تبلغ كلفة طلب API مقدار $0.002. ولحساب العمر في يوم محدد، قدموا ذلك التاريخ المرجعي واحفظوه؛ فالأداة لا تستبدله بتاريخ اليوم أبداً.

وصف مدة مشروع

حولوا تاريخي مرحلتين مسجلتين إلى مدة تقويمية واضحة مع الاحتفاظ بإجمالي الأيام الدقيق ذي الإشارة.

حساب مدة الخدمة في تاريخ ثابت

قيسوا مدة العضوية أو العمل أو الحساب نسبة إلى تاريخ مرجعي محفوظ، لا إلى اليوم الحالي المتغير.

إنشاء اختبارات تواريخ قابلة للتكرار

تحققوا من نهايات الأشهر والسنوات الكبيسة بنتائج لا تتغير بالمنطقة الزمنية أو وقت التنفيذ.

هل تستخدم الحاسبة تاريخ اليوم؟

لا. يلزم تقديم تاريخي ISO، ولا يقرأ الحساب الساعة الحالية مطلقاً.

هل يسمح بإدخال التاريخين بترتيب عكسي؟

نعم. يبقى التفصيل غير سالب، ويشير direction إلى الخلف، ويصبح total_days سالباً.

كيف تعالج تواريخ نهاية الشهر؟

تخفض الخطوة الشهرية إلى آخر يوم صالح في الشهر الأقصر، ثم يجري التحقق من عدم تجاوز النهاية.

ما صيغة التاريخ المقبولة؟

استخدموا صيغة YYYY-MM-DD الصارمة لتواريخ غريغورية صالحة ولسنوات من 0001 إلى 9999.

هل تؤثر المنطقة الزمنية أو التوقيت الصيفي في النتيجة؟

لا. تستخدم الأداة حساباً صحيحاً للتواريخ من دون Date في JavaScript أو منطقة محلية أو قواعد توقيت صيفي.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/date/diff-breakdown-ymd

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/date/diff-breakdown-ymd \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":"2019-01-31","to":"2024-03-02"}'
{
  "from": "2019-01-31",
  "to": "2024-03-02"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "date.diff_breakdown_ymd",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

اطّلع على توثيق KIT الكامل ←