حساب أيام العمل بين تاريخين مع استثناء العطلات
تحسب هذه الأداة أيام الاثنين إلى الجمعة ضمن نطاق شامل لتاريخ البداية والنهاية، وتتيح استبعاد قائمة اختيارية من العطلات.
شغّل الأداة مجانًا
وهي مناسبة للمواعيد وشروط السداد وخطط الموظفين وكل إجراء تعطي فيه الأيام التقويمية نتيجة غير دقيقة. يُؤخذ التاريخان الحدّيان في الحسبان، وتُهمل العطلات المكررة، ولا تُخصم عطلة تقع يوم السبت أو الأحد مرتين. يعتمد الحساب على عمليات تقويمية لا على إعدادات الوقت المحلية، ولذلك تعطي المدخلات نفسها النتيجة نفسها في كل مكان.
اختاروا النطاق وافهموا كيفية احتساب حدّيه
أدخلوا تاريخ البداية وتاريخ النهاية بالصيغة الدقيقة YYYY-MM-DD. الحساب شامل، ولذلك يمكن أن يضيف كل حد يوم عمل واحداً. إذا كان التاريخان يشيران إلى يوم الأربعاء نفسه، فالنتيجة واحد ما لم يكن ذلك اليوم مدرجاً في قائمة العطلات. أما إذا كان النطاق المؤلف من يوم واحد يقع يوم الأحد، فالنتيجة صفر. تكتسب هذه القاعدة الصريحة أهميتها عند مقارنة الحاسبات، لأن بعض الأدوات تستبعد اليوم الأول بصمت أو تتعامل مع تاريخ النهاية كموعد يقع خارج الفترة. هنا يُفحص كل تاريخ تقويمي من البداية حتى النهاية. لا يجوز أن يسبق تاريخ النهاية تاريخ البداية؛ فالنطاق المعكوس يعيد خطأ في الإدخال بدلاً من عدد سالب أو مضلل. كما تُفحص صحة التاريخ وفق التقويم الميلادي، ولذلك تُرفض القيم المستحيلة مثل 30 فبراير بدلاً من ترحيلها إلى شهر آخر.
استبعدوا العطلات من دون تشويه حساب نهاية الأسبوع
أضيفوا العطلات في قائمة اختيارية من التواريخ بصيغة YYYY-MM-DD. لا تنقص العطلة النتيجة إلا إذا وقعت داخل النطاق وفي يوم من الاثنين إلى الجمعة. أما عطلة السبت أو الأحد فلا تسبب خصماً إضافياً لأن يوم نهاية الأسبوع مستبعد أصلاً. تُقبل التواريخ الواقعة خارج النطاق من دون أن تؤثر في النتيجة، مما يتيح لكم إعادة استخدام تقويم عطلات المؤسسة في حسابات متعددة. ولا يُحتسب التاريخ المكرر إلا مرة واحدة حتى عند جمع بيانات الإغلاق من مصادر مختلفة. لا تختار الأداة تقويم عطلات دولة ما تلقائياً؛ بل تقدمون أنتم التواريخ الملائمة للعقد أو المكتب أو المدرسة أو السوق أو الولاية القضائية. وهكذا لا تفترض الأداة أياماً بديلة أو إغلاقات إقليمية أو سياسات داخلية. ويخضع كل تاريخ للتحقق، فتُرجع العطلة ذات الصيغة الخاطئة أو التاريخ المستحيل خطأ واضحاً بدلاً من تجاهلها بصمت.
استخدموا النتيجة في التخطيط والإجراءات الآلية
تفصل الاستجابة العدد النهائي لأيام العمل عن قيمتين مفيدتين للتدقيق: عدد أيام الأسبوع قبل استبعاد العطلات، وعدد العطلات الواقعة في أيام العمل التي استُبعدت فعلاً. وبذلك يسهل شرح النتيجة والتحقق منها. يمكن لمسؤول المشروع، مثلاً، أن يبين أن النطاق اشتمل على ثمانية أيام من الاثنين إلى الجمعة وعطلة واحدة منطبقة، فأصبحت النتيجة سبعة أيام عمل. ويمكن لأنظمة الرواتب والفوترة والدعم والخدمات اللوجستية والامتثال استخدام البنية نفسها للتحقق من فترات الخدمة من دون الاعتماد على المنطقة الزمنية للجهاز. تستخدم الخوارزمية حساباً صحيحاً حتمياً ولا تتصل بالشبكة ولا تقرأ التاريخ الحالي ولا تستعمل قيماً عشوائية. لذلك تنتج المدخلات المتطابقة مخرجات متطابقة في المتصفح وعبر API. الاستخدام التفاعلي مجاني، أما طلب API فسعره $0.002. وللحسابات المتكررة، احفظوا الولاية القضائية والسياسة مع قائمة العطلات، لأن الأداة تقيّم التواريخ المقدمة ولا تقرر العطلات التي تعتمدها مؤسستكم رسمياً.
حالات الاستخدام
قياس مهلة تقديم الخدمة
احسبوا أيام العمل المتاحة بين الاستلام والإنجاز مع استبعاد أيام الإغلاق التي تنطبق على فريق الخدمة.
التحقق من شروط السداد
احسبوا نطاقاً شاملاً لمراجعة السداد وحددوا بوضوح عطلات المصارف أو المكاتب ذات الصلة.
تخطيط الموظفين والتسليم
قارنوا فترات المشاريع بحساب موحد من الاثنين إلى الجمعة وقائمة عطلات خاصة بالمؤسسة قابلة لإعادة الاستخدام.
الأسئلة الشائعة
هل يُحتسب تاريخا البداية والنهاية؟
نعم. يُحتسب كل حد إذا وقع بين الاثنين والجمعة ولم يكن عطلة مستبعدة.
ماذا يحدث إذا وقعت العطلة في نهاية الأسبوع؟
لا يكون لها أثر إضافي، لأن يومي السبت والأحد مستبعدان أصلاً من الحساب.
هل تُحتسب العطلات المكررة أكثر من مرة؟
لا. يُستبعد تاريخ العطلة نفسه مرة واحدة كحد أقصى.
هل تعرف الأداة العطلات الرسمية في بلدي؟
لا. قدموا التواريخ التي تنطبق على ولايتكم القضائية أو مؤسستكم، بما فيها الأيام البديلة المعتمدة.
ماذا يحدث إذا سبق تاريخ النهاية تاريخ البداية؟
يعيد الحساب خطأ يفيد بأن الإدخال غير صالح بدلاً من إعطاء عدد سالب.
ما تكلفة العملية الحسابية عبر API؟
يستخدم كل طلب API السعر الأساسي المنشور $0.002، أما الحاسبة في المتصفح فمجانية.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/calc2/business-days-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_date":"2026-07-01","end_date":"2026-07-10"}'const res = await fetch("https://api.kit.forhosting.com/calc2/business-days-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_date": "2026-07-01",
"end_date": "2026-07-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/business-days-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_date": "2026-07-01",
"end_date": "2026-07-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/business-days-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_date":"2026-07-01","end_date":"2026-07-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_date":"2026-07-01","end_date":"2026-07-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/business-days-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"start_date": "2026-07-01",
"end_date": "2026-07-10"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.business_days_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |