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