حاسبة موعد الولادة المتوقع
قدّري موعد الولادة من أول يوم في آخر دورة شهرية: دورة بدأت في 1 يناير 2026 بطول 28 يومًا تعطي 8 أكتوبر 2026 بعد 280 يومًا، مع نهاية كل ثلث من الحمل. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- أول يوم من آخر دورة
- 2026-01-01
- مدة الدورة (أيام)
- 28
- موعد الولادة المتوقع
- 2026-10-08
- نهاية الثلث الأول
- 2026-04-08
- نهاية الثلث الثاني
- 2026-07-15
مجانية عبر الإنترنت
كيف يُقدَّر موعد الولادة
تطبّق الحاسبة قاعدة نيغله على أول يوم في آخر دورة شهرية. يُحسب الحمل المعتاد 280 يومًا من ذلك التاريخ، وهذا يفترض دورة طولها 28 يومًا. ولأن الدورات تختلف، يمكن إدخال طول الدورة الفعلي فيُعدَّل الحساب بمقدار الفرق: تصبح مدة الحمل 280 يومًا زائد طول الدورة ناقص 28. لذلك تؤخر الدورة ذات 30 يومًا الموعد يومين، وتقدّمه الدورة ذات 26 يومًا يومين. فإذا بدأت آخر دورة في 1 يناير 2026 بالطول الافتراضي، يكون الموعد المتوقع 8 أكتوبر 2026.
مراحل الحمل وأين تُستخدم
إلى جانب موعد الولادة، تعطي النتيجة مجموع أيام الحمل وتاريخين: نهاية الثلث الأول بعد 97 يومًا من أول يوم في آخر دورة، ونهاية الثلث الثاني عند 195 يومًا. فلدورة بدأت في 1 يناير 2026 يقعان في 8 أبريل و15 يوليو 2026. وتنتقل التواريخ بين الأشهر والسنوات بشكل صحيح وتراعي السنوات الكبيسة. تستخدم تطبيقات الحمل ذلك لعرض الموعد والمراحل من تاريخ واحد، وتستخدمه استمارات الاستقبال في العيادات لملء عمر الحمل وموعد الولادة مسبقًا وفق دورة كل مريضة.
حالات الاستخدام
تطبيقات الحمل
اعرض على الوالد المنتظِر موعد الولادة المتوقع ومعالم أثلاث الحمل انطلاقًا من إدخال واحد لآخر دورة شهرية.
نماذج الاستقبال السريري
املأ مسبقًا عمر الحمل وموعد الولادة في السجل الصحي الإلكتروني أو مسار الحجز، معدَّلَين وفق دورة كل مريضة.
الأسئلة الشائعة
هل تؤثر المنطقة الزمنية في النتيجة؟
لا. جميع العمليات الحسابية مدنية بتوقيت UTC دون Date.now()، فالنتائج حتمية تمامًا.
كيف يُحسب موعد الولادة المتوقع؟
بقاعدة نيغله: تُضاف 280 يومًا إلى أول يوم في آخر دورة شهرية. فإذا بدأت الدورة في 1 يناير 2026 وكان طولها 28 يومًا، يكون الموعد المقدَّر 8 أكتوبر 2026.
ماذا لو كانت دورتي أطول أو أقصر من 28 يومًا؟
أدخلي طول دورتك فيتحرك الموعد بمقدار الفرق: دورة من 30 يومًا تؤخر الولادة يومين، ودورة من 26 يومًا تقدّمها يومين. ويُقبل أي عدد صحيح من الأيام بين 20 و45.
متى ينتهي كل ثلث من الحمل؟
تقع نهاية الثلث الأول بعد 97 يومًا من أول يوم في آخر دورة، ونهاية الثلث الثاني عند 195 يومًا. فإذا بدأت الدورة في 1 يناير 2026 كان التاريخان 8 أبريل و15 يوليو 2026.
هل تراعي الحاسبة السنوات الكبيسة؟
نعم. تنتقل التواريخ بين الأشهر والسنوات بشكل صحيح وتحتسب 29 فبراير إذا وقع خلال الحمل، فالدورة التي بدأت في 15 فبراير 2024 تحتسب هذا اليوم الإضافي تلقائيًا.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/due-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lmp":"2026-01-01"}'const res = await fetch("https://api.kit.forhosting.com/dev/due-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lmp": "2026-01-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/due-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lmp": "2026-01-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/due-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lmp":"2026-01-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lmp":"2026-01-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/due-date", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"lmp": "2026-01-01"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.due_date",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تقدِّر موعد الولادة المتوقع للحمل انطلاقًا من أول يوم في آخر دورة شهرية (lmp) وقيمة اختيارية للدورة cycle_days، وتعيد موعد الولادة، وتاريخي نهاية الثلثين الأول والثاني من الحمل، وإجمالي أيام الحمل.
حساب Naegele، معدَّلًا وفق دورتك
تطبِّق الأداة قاعدة Naegele على الحقل lmp، وهو التاريخ بصيغة ISO (YYYY-MM-DD) لأول يوم في آخر دورة شهرية لديك. يُحتسب الحمل المعتاد بمقدار 280 يومًا من ذلك التاريخ، غير أن الحاسبة تعدِّل هذه المدة وفق دورتك الشخصية بالصيغة offset = 280 + (cycle_days - 28)، فدورة مدتها 30 يومًا تؤخِّر موعد الولادة يومين، ودورة مدتها 26 يومًا تقدِّمه يومين. القيمة الافتراضية لـ cycle_days هي 28، ويجب أن تكون عددًا صحيحًا بين 20 و45. تعيد الاستجابة due_date (وهو lmp مضافًا إليه الإزاحة)، وgestation_days (الإزاحة نفسها)، إضافة إلى معلمَين زمنيَّين: trimester1_end عند lmp + 97 يومًا، وtrimester2_end عند lmp + 195 يومًا. فمع lmp بقيمة 2026-01-01 والدورة الافتراضية، يكون due_date هو 2026-10-08 وتكون gestation_days هي 280.
حساب حتمي لتواريخ التقويم المدني بتوقيت UTC
داخليًّا تحلِّل الدالة addDays السلسلة النصية بتعبير نمطي صارم، وتبني التاريخ عبر Date.UTC، وتضيف إزاحة الأيام، ثم تعيد تسلسله بـ toISOString().slice(0,10)، وهو ما يتجاوز حدود الأشهر والسنوات بدقة ويراعي السنوات الكبيسة — فـ lmp بقيمة 2024-02-15 يحسب 29 فبراير تلقائيًّا. جميع عمليات حساب التواريخ هي حساب مدني صرف بتوقيت UTC دون أي ساعة جدارية: لا يستدعي الكود أبدًا Date.now()، فيعطي lmp نفسه دائمًا due_date نفسه بصرف النظر عن المنطقة الزمنية للخادم أو لحظة الطلب.
التحقق من الصحة والأخطاء المصنَّفة
يجب أن يكون lmp سلسلة نصية مطابقة لصيغة YYYY-MM-DD بشهر بين 1 و12 ويوم تقويمي حقيقي؛ وتُرفض قيمة مثل 2026-02-30 لأن تاريخ UTC المُنشأ لا يعود إلى المكوِّنات نفسها ذهابًا وإيابًا. ويجب أن يكون الإدخال في المستوى الأعلى كائنًا عاديًّا بذاته — فتُرفض المصفوفات والقيمة null. يُفحص كل حقل قبل تشغيل أي عملية حسابية، وأي إخفاق يطلق خطأ invalid_input مصنَّفًا يسمِّي المشكلة بدلًا من استثناء غير مصنَّف. ويجب أن تكون cycle_days عددًا صحيحًا ضمن المجال 20-45، فتُخفق القيم 19 أو 46 أو أي قيمة كسرية. وقد صُمِّمت رموز الأخطاء الثابتة هذه لإبراز حقول النموذج وإعادة المحاولة الآلية في المشغِّل، لا لتتبُّعات المكدس الحرة، ولأن مهام الواجهة البرمجية المخفقة لا تُحتسب عليك قط، يمكنك التحقق من حِمولات عدائية أو عرضية دون إنفاق رصيدك المدفوع مسبقًا.
حالات التكامل
الجدولة بالجملة
مرِّر آلاف سجلات آخر دورة شهرية عبر الواجهة البرمجية لتخطيط نوافذ المواعيد بصورة حتمية.
أسئلة تقنية
أي قاعدة تستخدمها؟
قاعدة Naegele: 280 يومًا من آخر دورة شهرية، معدَّلة بمقدار (cycle_days - 28).
هل يمكنني تحديد دورة مختلفة عن 28 يومًا؟
نعم. مرِّر cycle_days عددًا صحيحًا من 20 إلى 45؛ وقيمتها الافتراضية 28.
ما صيغة التاريخ التي يحتاجها lmp؟
سلسلة نصية صارمة بصيغة YYYY-MM-DD؛ والتواريخ المستحيلة مثل 2026-02-30 تعيد invalid_input.
هل هي مجانية؟
نعم في الأداة التفاعلية بالمتصفح. وتشغِّل الواجهة البرمجية النواة نفسها بدءًا من $0.002 لكل استدعاء.