# مولّد التواريخ المتكررة

> حوّل تاريخ بداية وقاعدة تكرار إلى قائمة كاملة بالتواريخ — يومياً أو أسبوعياً أو شهرياً أو سنوياً، مع نظام RRULE وجدول قابل للطباعة.

- **Category:** التاريخ والوقت
- **Interactive calculator:** https://youcalc.com/ar/date-time/recurring-date-generator/
- **Price:** Free, no sign-up required

## Overview

يُوسّع هذا المولّد تاريخ بداية واحداً مع قاعدة تكرار إلى القائمة الكاملة المرتبة للتواريخ التي يُنتجها، ثم يعرض هذه القائمة على شكل جدول زمني يمكن طباعته أو مشاركته. يتبع نموذج القاعدة معيار RRULE لـ iCalendar (RFC 5545): التكرار (يومي أو أسبوعي أو شهري أو سنوي)، والفاصل N ("كل N وحدات")، واختيار يوم الأسبوع اختياري للقواعد الأسبوعية، ونمط شهري (نفس اليوم من الشهر، أو "اليوم رقم N" كالجمعة الثالثة، أو آخر يوم في الأسبوع)، وشرط انتهاء — بعد عدد من التكرارات أو حتى تاريخ انتهاء شامل. يُعرض كل تاريخ مع يوم الأسبوع وبصيغة ISO 8601 (YYYY-MM-DD)، إلى جانب نص RRULE المكافئ الذي يمكن إدراجه في تطبيق تقويم.

## How to read your result

العنوان الرئيسي هو عدد التواريخ التي تُنتجها القاعدة، مع أول تاريخ وآخر تاريخ والمدة بالأيام بجانبه. أسفل ذلك، يسرد الجدول كل تكرار بالترتيب — موضعه ويوم أسبوعه وتاريخ ISO — ويُظهر مخطط "التكرارات حسب الشهر" كيف تتجمع التواريخ عبر التقويم. سطر RRULE الرمادي هو القاعدة ذاتها مكتوبة بصيغة RFC 5545 (مثلاً RRULE:FREQ=MONTHLY;BYDAY=3FR;COUNT=12 لـ "الجمعة الثالثة من كل شهر، اثنتا عشرة مرة"). تُحسب التواريخ بالتوقيت العالمي UTC حتى لا تتزحزح القائمة بيوم بسبب تغيير التوقيت الصيفي، وتُحدَّد السلسلة بحد أقصى 500 تاريخ — إذا كانت القاعدة ستمتد أطول، ستُعرض أول 500 مع ملاحظة.

## Method

يقرأ المحرك تاريخ البداية بالتوقيت العالمي UTC (Date.UTC) حتى لا يُزيح أي انتقال للتوقيت الصيفي يوماً. للقواعد اليومية والشهرية والسنوية يسير فهرس تكرار i = 0, 1, 2 … ويُنشئ تواريخ مرشحة: اليومي يُضيف i × interval يوماً؛ الشهري يُقدم i × interval شهراً ويحتفظ إما بيوم-الشهر من تاريخ البداية (مع تخطي الأشهر التي تفتقره) أو يُحلّ اليوم رقم N من الأسبوع أو آخر يوم في الأسبوع؛ السنوي يُقدم i × interval سنوات على شهر ويوم البداية (مع تخطي 29 فبراير في السنوات العادية). تُربط القواعد الأسبوعية بيوم الاثنين من أسبوع البداية وتتقدم interval أسبوعاً في كل مرة مُصدِرةً كل يوم أسبوع مُحدد. أي مرشح قبل تاريخ البداية يُتخطى؛ وأي يوم تقويمي غير موجود يُتخطى؛ يتوقف التوليد عند العدد المطلوب أو عند تاريخ UNTIL الشامل أو عند حد 500 تاريخ. تتضمن النتيجة أيضاً التواريخ مجمَّعة حسب الشهر التقويمي ونص RRULE المكافئ وفق RFC 5545. الحساب دالة نقية بلا وصول للساعة أو الشبكة.

## Example

- **Setup:** حدد تاريخ البداية بـ 1 يناير 2026، واختر شهرياً، ونمط "اليوم رقم N"، والجمعة الثالثة، وأنهِ بعد 3 تكرارات.
- **Result:** يُعيد المولّد 2026-01-16 و2026-02-20 و2026-03-20 — الجمعة الثالثة من كل شهر — ويقرأ سطر RRULE: RRULE:FREQ=MONTHLY;BYDAY=3FR;COUNT=3. ولأن التواريخ التي تُصدَر هي في تاريخ البداية أو بعده، فإن الجمعة الثالثة من يناير (السادس عشر) هي الإدخال الأول.

## Frequently asked questions

### ما فائدة نص RRULE؟

RRULE هو صيغة قاعدة التكرار من RFC 5545، معيار iCalendar الذي يُشغّل Google Calendar وApple Calendar وOutlook ومعظم أدوات الجدولة. يكتب المولّد قاعدتك في سطر RRULE واحد (FREQ وINTERVAL وBYDAY وCOUNT أو UNTIL) لتتمكن من لصقه في حدث تقويم أو ملف .ics وإعادة إنتاج السلسلة ذاتها هناك.

### كيف تُعالَج التواريخ المستحيلة كاليوم 31 أو 29 فبراير؟

تُتخطى ولا تُدفع للأمام أبداً — تماماً كما يُحدد RFC 5545. قاعدة شهرية "بنفس اليوم" تبدأ في اليوم 31 لا تُطلق إلا في الأشهر التي تحتوي على يوم 31 (فتُتخطى فبراير وأبريل ويونيو وسبتمبر ونوفمبر). قاعدة سنوية في 29 فبراير لا تقع إلا في السنوات الكبيسة. المولّد لا يُزيح تاريخاً مفقوداً بصمت إلى اليوم الأول أو الثامن والعشرين.

### كيف يختلف هذا عن "باحث اليوم رقم N من الأسبوع في الشهر"؟

باحث اليوم رقم N يُجيب عن سؤال واحد — ما التاريخ الذي يقع فيه، مثلاً، الخميس الثالث من شهر واحد. أما هذا المولّد فيُصدر السلسلة المتكررة بأكملها: الخميس الثالث من كل شهر لعدد التكرارات (أو حتى تاريخ انتهاء) الذي تطلبه، بالإضافة إلى RRULE المكافئ وجدول قابل للطباعة.

### هل يوجد حد لعدد التواريخ المولَّدة؟

نعم — السلسلة مُحدَّدة بصرامة بـ 500 تاريخ. إذا اخترت "حتى تاريخ" وكانت القاعدة ستُنتج أكثر من 500 تكرار، يُعيد المولّد أول 500 ويُشير إلى أن القاعدة تستمر بعد النطاق المعروض. التحديد "بعد N" محدود هو أيضاً بـ 500.

### ما المنطقة الزمنية التي تستخدمها التواريخ؟

التواريخ هي تواريخ تقويمية بلا توقيت يومي أو منطقة زمنية — تُحسب بالتوقيت العالمي UTC لضمان ثبات الحسابات. القاعدة الأسبوعية المتضمنة عدة أيام مرتبطة بيوم الاثنين من أسبوع تاريخ البداية (بداية الأسبوع الافتراضية في RFC 5545)، ولا تظهر في القائمة إلا التواريخ الواقعة في تاريخ البداية أو بعده.

## Related calculators

- [محدد اليوم النسبي من الشهر](https://youcalc.com/ar/date-time/nth-weekday-finder/)
- [مخطط مواعيد المشاريع](https://youcalc.com/ar/date-time/deadline-planner/)
- [حاسبة جدول المناوبات ونظام الورديات الدوّار](https://youcalc.com/ar/date-time/shift-pattern-calculator/)
- [حاسبة الجدول الدراسي](https://youcalc.com/ar/date-time/timetable-calculator/)

## Sources

- https://datatracker.ietf.org/doc/html/rfc5545
- https://en.wikipedia.org/wiki/ISO_8601

---

Interactive version: https://youcalc.com/ar/date-time/recurring-date-generator/ · From YouCalc — https://youcalc.com
