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