مولّد تواريخ متكررة
كل 7 أيام من 1 يناير إلى 26 فبراير 2024 تعطي 9 تواريخ، مع احتساب الأول والأخير. أدخل البداية والفاصل بالأيام والنهاية لتعرض كل تاريخ على هذا الإيقاع، للاجتماعات أو دورات الفوترة أو التذكيرات. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- البداية
- 2024-01-01
- أيام الفاصل
- 7
- النهاية
- 2024-02-26
- الكمية
- 9
- أيام الامتداد
- 56
يجيب مولّد التواريخ المتكررة عن سؤال تخطيط عملي: عند إعطاء أول يوم تقويمي، وفجوة ثابتة من أيام كاملة، ويوم نهائي، أي التواريخ تقع على ذلك الإيقاع داخل النافذة الشاملة؟ تستخدمه الفرق لاجتماعات نصف أسبوعية، وتشغيل فواتير أسبوعي، وتذكيرات دواء كل ثلاثة أيام، وأي جدول ليس تعبير cron كاملًا.
كيف تُعرَّف السلسلة الشاملة بخطوات الأيام
Start هو أول حدوث مرشّح كتاريخ تقويم ISO بصيغة YYYY-MM-DD؛ تُقبل أوقات ISO-8601 ويُستخدم جزء تاريخ التقويم فقط للتقدّم. Interval_days عدد صحيح موجب يعني الفجوة بالأيام الكاملة بين حدوثين متتاليين—سبعة للأسبوعي، وأربعة عشر للنصف أسبوعي، وثلاثون لخطة بسيطة كل ثلاثين يومًا، وهكذا. End هو آخر تاريخ قد يظهر في القائمة؛ المدى شامل، فإذا وقع تاريخ متدرّج تمامًا على end يُحفظ.
يحوّل المحرك start وend إلى أرقام أيام مدنية متسلسلة بصيغ عددية صحيحة بأسلوب Howard Hinnant، ثم يصدر start، ثم start زائد الفاصل، ثم start زائد ضعفي الفاصل، وهكذا ما دام اليوم المتسلسل أقل من end أو يساويه. إذا كان start بعد end يصبح مصفوفة dates فارغة وcount صفرًا بدل خطأ، فيبقى تشغيل الدفعات بسيطًا.
متى تفيد قائمة التواريخ وما حدودها
استدعوا مولّد التواريخ المتكررة المجاني في المتصفح لعروض التخطيط وفحوصات الجداول ونماذج المنتج دون تثبيت مكتبات تقويم في كل لغة. اقرنوا هذه النقطة الطرفية بعدّادات أيام العمل عندما يجب تخطي عطلات نهاية الأسبوع والأعياد، أو بأدوات التشغيل التالي لـ cron عندما تحتاجون أوقات تنفيذ بساعة الحائط بدل قائمة أيام صرفة. تتبع مدخلات المصدر نفس قواعد الاحتفاظ لعناصر parse الأخرى في KIT.
فضّلوا نوافذ بمقياس التقويم لجداول الواجهة واحفظوا السلاسل اليومية الكثيفة جدًا ضمن سقف الحدوث المنشور.
حالات الاستخدام
شبكات أيام التذكير والدواء
تسرد تطبيقات الصحة والعادات كل جرعة أو متابعة كل N أيام بين حدّين تقويميين دون تضمين محركات RRULE كاملة لحالة الفجوة الثابتة البسيطة.
الأسئلة الشائعة
كيف أولّد تواريخ متكررة كل N أيام؟
تتضمن الاستجابة مصفوفة dates لكل حدوث في المدى الشامل.
هل يُدرج تاريخ النهاية؟
نعم. المدى شامل: إذا وقع تاريخ متدرّج تمامًا على end يظهر في dates. إذا كان start بعد end تكون dates فارغة وcount صفرًا.
هل يستخدم منطقتي الزمنية المحلية أو Date في JavaScript؟
لا. يستخدم التقدّم حساب أيام مدنية غريغورية صرفًا على جزء التقويم YYYY-MM-DD فقط، فتكون النتائج حتمية عبر المضيفات والمناطق الزمنية.
ماذا يحدث إذا كان الفاصل صفرًا أو سالبًا؟
يُرفض هذا الفاصل. فبخطوة صفرية أو سالبة لن تصل السلسلة أبدًا إلى تاريخ النهاية، لذلك يجب أن يكون الفاصل يومًا واحدًا على الأقل.
ماذا يحدث إذا كان تاريخ البداية بعد تاريخ النهاية؟
تحصل ببساطة على قائمة فارغة وعدد صفر، دون رسالة خطأ. وهكذا لا تتوقف المعالجة المجمّعة عندما لا تحتوي فترة ما على أي تاريخ.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/date/recurring-dates \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-01-01","interval_days":7,"end":"2024-02-26"}'const res = await fetch("https://api.kit.forhosting.com/date/recurring-dates", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-01-01",
"interval_days": 7,
"end": "2024-02-26"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/recurring-dates",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-01-01",
"interval_days": 7,
"end": "2024-02-26"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/recurring-dates", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-01-01","interval_days":7,"end":"2024-02-26"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-01-01","interval_days":7,"end":"2024-02-26"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/recurring-dates", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"start": "2024-01-01",
"interval_days": 7,
"end": "2024-02-26"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.recurring_dates",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تحسب هذه القدرة السلسلة بحساب أيام مدنية غريغورية صرف، دون لمس ساعة المضيف أو المناطق الزمنية العائمة لجزء التاريخ، فيعود نفس JSON دائمًا لنفس المدخلات. يُرفض الفاصل غير الموجب بـ invalid_input حتى لا تدور خطوة صفرية بلا نهاية.
كيف تُعرَّف السلسلة الشاملة بخطوات الأيام
قدّموا ثلاثة حقول: start وinterval_days وend. الحقول الناقصة والتواريخ المشوّهة والأيام المستحيلة مثل واحد وثلاثين فبراير وأي فاصل صفري أو سالب تفشل بـ invalid_input ولا تُحاسب. أسماء بديلة اختيارية مثل from وto وinterval تُربط بنفس المعاملات حتى يستخدم مستدعو SDK أسماء مألوفة دون تغيير الرياضيات.
قراءة الاستجابة واختيار فاصل عملي
Span_days هو الفرق بإشارة بين الأيام المتسلسلة لـ end وstart، مفيد لملخصات الواجهة حتى عندما تكون القائمة فارغة. Inclusive دائمًا true حتى لا يخمن العملاء قواعد الحدود. استخدموا count وحده عندما تحتاجون فقط كم إصابة تقع في ربع؛ واستخدموا مصفوفة dates كاملة عندما تحتاج التقويمات أو التذكيرات أو تصديرات CSV كل صف. عند النجاح تعيد الاستجابة start وend مُطبَّعين بصيغة YYYY-MM-DD، وinterval_days الذي أرسلتموه، وcount كطول السلسلة، وdates كمصفوفة تصاعدية من سلاسل تقويم ISO. Method دائمًا recurring_dates حتى يتفرع الموجّهون اللاحقون دون فحص الأشكال. اختاروا interval_days ليطابق الإيقاع الفعلي: واحد لكل يوم، وسبعة لنفس يوم الأسبوع كل أسبوع بدءًا من start، وأربعة عشر لكل أسبوعين، وخطوات أكبر عندما تحتاجون نقاط تحقق متباعدة فقط. سقف interval_days ثلاثة آلاف وستمائة وخمسون حتى لا يطلب طلب واحد خطوات عبثية لعقود متعددة؛ ويُحدّ عدد الحدوث أيضًا لسلامة Worker، لذا يجب تقسيم النطاقات الطويلة جدًا بخطوة واحد إلى أجزاء.
استخدام API والتسعير وسير العمل والحدود
أرسلوا جسم JSON يتضمن start وinterval_days وend الإلزامية. استخدموا API المدفوعة مسبقًا عندما يحتاج مسار فوترة أو خدمة تذكير أو مجدول مناهج أو runbook تشغيل عقدًا مستقرًا تحت رصيد KIT بسعر $0.002 لكل عنصر ناجح؛ ولا تستهلك إخفاقات التحقق الرصيد بعد رفض المحرك. يمكن لمؤلفي SDK تعيين مصفوفة dates مباشرة إلى منتقيات التاريخ وبناة ICS وأعمدة الجداول—نفس التسلسل الذي يكتبه المخطّط يدويًا عند تعليم كل N أيام على تقويم جداري من أول يوم حتى آخره.
حالات التكامل
قوائم تخطيط أسبوعية ونصف أسبوعية
تُنشئ فرق المنتج والعمليات سلاسل بأسلوب كل اثنين من بداية معروفة حتى نهاية الربع بتعيين interval_days إلى 7 أو 14 وتصدّر مصفوفة dates إلى التقويمات أو جداول البيانات.
تواريخ تشغيل الفواتير والتقارير
تحسب سكربتات المالية أيام فواتير أو تقارير متكررة بفجوة أيام ثابتة وتثبّت JSON في الاختبارات حتى لا تنجرف مهام الدفعات بين البيئات.
أسئلة تقنية
ماذا يحدث إذا كان الفاصل صفرًا أو سالبًا؟
يفشل الطلب بـ invalid_input. يجب أن يكون interval_days عددًا صحيحًا موجبًا حتى لا تدور الخطوة بلا نهاية؛ ولا تُحاسب إخفاقات التحقق.
هل مولّد التواريخ المتكررة مجاني؟
تعمل أداة المتصفح مجانًا على جهازكم. تستخدم استدعاءات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل عنصر ناجح؛ ولا تُحاسب إخفاقات التحقق.