حاسبة سنوات الخدمة
من عُيّن في 15 مارس 2018 أتمّ 8 سنوات و4 أشهر و10 أيام من الخدمة حتى 25 يوليو 2026. أدخل تاريخ التعيين وتاريخ القطع للتحقق من مكافآت الأقدمية أو فترات استحقاق المزايا بالسنوات المكتملة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- تاريخ التوظيف
- 2018-03-15
- تاريخ المرجع
- 2026-07-25
- سنوات الخدمة
- 8
- الأشهر
- 4
- الأيام
- 10
- إجمالي الأيام
- 3,054
تبحث فرق الموارد البشرية وهندسة الرواتب ومسؤولو المزايا عن حاسبة سنوات الخدمة عندما يحتاجون مدة خدمة مكتملة بين تاريخ التعيين وتاريخ قطع لا ينزاح مع ساعة الخادم. تقبل هذه القدرة تاريخ بدء التوظيف وتاريخًا مرجعيًا إلزاميًا، وتطبّق قواعد التقويم الغريغوري الاستباقي مع ضبط نهاية الشهر، وتعيد سنوات خدمة كاملة مكتملة مع الأشهر والأيام المتبقية. استخدمها حين يتحدث نص المنتج عن خمس سنوات خدمة أو شارات عشر سنوات أو منحدرات استحقاق مقاسة بسنوات تقويمية مكتملة لا بعدّ أيام خام مقسوم على ثلاثمئة وخمسة وستين.
تاريخ التعيين والتاريخ المرجعي ولماذا لا تُستخدم الساعة أبدًا
يجب أن تكون كل قيمة يومًا مدنيًا بصيغة YYYY-MM-DD، مثل ألفين وثمانية عشر شرطة صفر ثلاثة شرطة خمسة عشر للتعيين وألفين وستة وعشرين شرطة صفر سبعة شرطة خمسة وعشرين للقطة التقييم. يجوز تمرير بادئة تاريخ-وقت ISO-8601 كاملة؛ وإن وُجد وقت يُستخدم جزء التقويم فقط، لأن سنوات الخدمة للمزايا مقياس من تاريخ إلى تاريخ لا مدة ساعة مع مناطق زمنية.
تتراوح السنوات من واحد إلى تسعة آلاف وتسعمئة وتسعة وتسعين، والأشهر من واحد إلى اثني عشر، ويجب أن يوجد اليوم في ذلك الشهر وفق قواعد الكبيسة الغريغورية، بما في ذلك التاسع والعشرون من فبراير في السنوات الكبيسة فقط. إذا وقع التاريخ المرجعي قبل تاريخ التعيين حصرًا، تفشل الطلب برسالة واضحة بأن سنوات الخدمة لا يمكن أن تكون سالبة، بدل اختراع مدة موقّعة تسمّيها معظم واجهات المنتج خطأً خدمة مكتملة.
سنوات الخدمة للمزايا وحدود الحساب
استخدم حاسبة سنوات الخدمة المجانية في المتصفح لعروض الموارد البشرية والخدمة الذاتية للمديرين وفحوصات الجوائز لمرة واحدة دون تثبيت مكتبات تواريخ أو إرسال قاعدة مناطق زمنية لكل عميل. اربط هذه النقطة بأداة عدّ أيام حين تحتاج طول الفترة وحده، أو بأداة عمر بالسنوات والأشهر والأيام حين يجب حساب العمر المدني من تاريخ ميلاد لا مدة التوظيف من تاريخ تعيين—نيّتان بحثيتان وأسماء حقول مختلفة رغم تقارب حساب التقويم.
أبقِ التوقعات صادقة: تقيس هذه القدرة المدة المدنية الغريغورية بين تاريخين صريحين؛ ولا تتخطى عطل نهاية الأسبوع كمدة عمل، ولا تحمّل تقويمات عطل رسمية، ولا تطبّق جداول ذكرى نقابية، ولا توزّع جوائز سنة جزئية، ولا تجعل المرجع «اليوم» على الخادم. تتبع المدخلات قواعد الاحتفاظ نفسها لسائر عناصر parse في KIT. ولأن التنفيذ parse نقي من المستوى A، يبقى كل استدعاء ناجح رخيصًا وحتميًا وخاليًا من رموز النموذج أو الشبكة الصادرة—وهذا بالضبط ما تحتاجه مجموعات الانحدار عند تثبيت حالات حدود الذكرى عبر عقود من تواريخ التعيين.
الأسئلة الشائعة
ماذا لو كان التاريخ المرجعي قبل تاريخ التعيين؟
لا يمكن أن تكون سنوات الخدمة سالبة؛ صحّح الزوج أو بدّل الحقول فقط إذا كان منتجك يقيس عمدًا تاريخ بدء مستقبليًا.
كيف تُعالَج تواريخ التعيين في يوم كبيس وذكرى نهاية الشهر؟
تتقدم الأشهر والسنوات مع ضبط إلى آخر يوم صالح في شهر الهدف. يصبح تعيين 29 فبراير يوم 28 فبراير في سنوات الذكرى غير الكبيسة، بما يوافق الممارسة المدنية الشائعة في الموارد البشرية.
لماذا لا يكفي قسمة أيام العمل على 365؟
لأن المكافآت وقواعد الاستحقاق تعدّ السنوات التقويمية المكتملة، والسنوات الكبيسة تجعل عدّ الأيام ينحرف. أما عدّ السنوات ثم الأشهر ثم الأيام فيعطي الرقم الذي تقصده سياسة الموارد البشرية.
هل تُحسب مدة الخدمة حتى اليوم تلقائيًا؟
لا. التاريخ المرجعي إلزامي دائمًا ولا تُقرأ أي ساعة، لذلك يعطي التاريخان أنفسهما مدة الخدمة نفسها على أي جهاز وفي أي بلد وفي أي وقت.
متى تحل ذكرى الخدمة التالية؟
تعرض النتيجة الذكرى السابقة والتالية. لمن عُيّن في 15 مارس 2018 مع تاريخ مرجعي 25 يوليو 2026، كانت السابقة في 2026-03-15 والتالية في 2027-03-15.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/date/years-of-service \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hire_date":"2018-03-15","reference_date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/date/years-of-service", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hire_date": "2018-03-15",
"reference_date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/years-of-service",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hire_date": "2018-03-15",
"reference_date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/years-of-service", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hire_date":"2018-03-15","reference_date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hire_date":"2018-03-15","reference_date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/years-of-service", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"hire_date": "2018-03-15",
"reference_date": "2026-07-25"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.years_of_service",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تفشل الأيام التقويمية غير الصالحة وأزواج التواريخ المعكوسة بـ invalid_input ولا تُفوتر؛ وتكلف العناصر الناجحة $0.002 من رصيد KIT.
تاريخ التعيين والتاريخ المرجعي ولماذا لا تُستخدم الساعة أبدًا
أرسل حقلَي نص إلزاميين: hire_date وreference_date. تربط الأسماء البديلة الاختيارية hire وstart_date وemployment_start وfrom بحقل التعيين؛ وreference وas_of وto وon وevaluation_date بحقل المرجع، حتى تحتفظ نماذج الموارد البشرية وSDK بأسماء مألوفة. الحقلان إلزاميان عمدًا: حاسبة مدة تستبدل بصمت ساعة المضيف تنتج إجابات مختلفة في CI وعلى حاسوب محمول في منطقة أخرى وعلى عامل API في UTC، فتكسر تدقيق الجوائز وتصدير الرواتب القابل لإعادة الإنتاج. تُرفض الأزواج المستحيلة مثل ألفين وثلاثة وعشرين شرطة صفر اثنين شرطة تسعة وعشرين بـ invalid_input بدل ضبطها إلى مارس.
كيف تُحسب السنوات والأشهر والأيام المكتملة
يُكمل الحقلان months وdays الفترة المتبقية بعد تلك السنوات الكاملة، فتعرض لوحات المتابعة رقم منحدر الاستحقاق وبقية مقروءة معًا. تقيس الخوارزمية أشهرًا تقويمية كاملة من التعيين نحو المرجع، مع ضبط يوم الشهر عندما يكون شهر الهدف أقصر: تعيين في الحادي والثلاثين من يناير يتقدم شهرًا واحدًا إلى آخر يوم من فبراير في السنوات الكبيسة وغير الكبيسة. إذا تجاوز ذلك التاريخ المؤقت بعد تقديم الأشهر المرجع، تتراجع المحرّك شهرًا واحدًا وتبلّغ الفترة المتبقية بأيام مدنية كاملة. سنوات الخدمة هي مجموع الأشهر الكاملة مقسومًا على اثني عشر؛ والأشهر الباقي modulo اثني عشر؛ والأيام تُغلق الثلاثي. عند النجاح تعيد الاستجابة hire_date وreference_date مُطبَّعين بصيغة YYYY-MM-DD، ثم years_of_service كعدد السنوات التقويمية الكاملة المكتملة للخدمة—الرقم الذي تعنيه قواعد الأهلية عادةً حين تقول خمس سنوات خدمة. الحقل total_days هو فرق الأيام المدنية الحصري بين الترتيبين: نفس اليوم التقويمي يعطي صفر total_days وصفر سنوات خدمة، واليوم التالي يوم خدمة واحد. الحقلان last_anniversary وnext_anniversary هما تاريخا ذكرى التعيين بعد years_of_service وبعد years_of_service زائد سنة مكتملة، مع ضبط تعيينات التاسع والعشرين من فبراير إلى الثامن والعشرين من فبراير في سنوات الهدف غير الكبيسة.
استخدام API والتسعير ومسارات المزايا وحدود صادقة
أرسل جسم JSON مضغوطًا بطريقة POST يتضمن سلسلتي hire_date وreference_date. استدعِ API المدفوعة مسبقًا عندما تحتاج دفعات الرواتب أو عتبات استحقاق الأسهم أو شرائح تراكم PTO أو برامج جوائز الخدمة عقدًا مستقرًا برصيد KIT عند $0.002 لكل عنصر ناجح؛ لا تستهلك إخفاقات التحقق الرصيد بعد رفض المحرّك. يمكن لمؤلفي SDK تعيين years_of_service إلى شارة أهلية رئيسية وعرض months وdays والسلسلة formatted لتسميات إمكانية الوصول، بنفس شكل الاستجابة في كل ربط لغوي.
حالات التكامل
جوائز الخدمة وبرامج التقدير
قيّم hire_date مقابل حفل جوائز أو reference_date قطع مالي لتقرر من أكمل خمس أو عشر أو عشرين سنة خدمة قبل طباعة الشهادات.
استحقاق المزايا ومنحدرات الأهلية
اربط استحقاق المطابقة أو إجازة الخدمة الطويلة أو مزايا التعليم بـ years_of_service المكتملة من بدء التوظيف حتى تاريخ تقييم يحدده الخطة.
تصدير دفعات الرواتب وHRIS
التقط مدة كل موظف مقابل تاريخ as-of واحد للرواتب حتى تعيد التقارير واختبارات golden إنتاج السنوات والأشهر والأيام نفسها في كل تشغيل.
أسئلة تقنية
كيف أحسب سنوات الخدمة من تاريخ التعيين؟
أرسل JSON يتضمن hire_date وreference_date بصيغة YYYY-MM-DD. تتضمن الاستجابة years_of_service (سنوات كاملة مكتملة) وmonths وdays وtotal_days وlast_anniversary وnext_anniversary وسلسلة formatted.
هل تُستخدم تاريخ اليوم تلقائيًا؟
لا. reference_date إلزامي. لا تقرأ المحرّك ساعة النظام أبدًا، فتبقى النتائج متطابقة في CI والمتصفحات وعمال API.
كم تكلفة حاسبة سنوات الخدمة؟
أداة المتصفح مجانية على جهازكم. تستخدم طلبات API رصيد KIT المدفوع مسبقًا عند $0.002 لكل استدعاء ناجح؛ ولا تُفوتر المدخلات غير الصالحة.