Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,63 +1,76 @@
---
title: مجموعة من استثناءات التقويم في Aspose.Tasks
linktitle: مجموعة من استثناءات التقويم في Aspose.Tasks
date: 2026-04-09
description: تعلم كيفية ضبط التقويم القياسي وإدارة عطلات المشروع في مشاريع .NET الخاصة
بك باستخدام Aspose.Tasks للحصول على جدولة دقيقة.
keywords:
- set standard calendar
- manage project holidays
- load project calendar
linktitle: تعيين التقويم القياسي ومعالجة الاستثناءات في Aspose.Tasks
second_title: Aspose.Tasks .NET API
description: تعرف على كيفية التعامل بكفاءة مع استثناءات التقويم في مشاريع .NET الخاصة بك باستخدام Aspose.Tasks، مما يضمن جدولة دقيقة وإدارة الموارد.
weight: 13
title: تعيين التقويم القياسي ومعالجة الاستثناءات في Aspose.Tasks
url: /ar/net/calendar-scheduling/calendar-exception-collection/
weight: 13
---

{{< blocks/products/pf/main-wrap-class >}}
{{< blocks/products/pf/main-container >}}
{{< blocks/products/pf/tutorial-page-section >}}

# مجموعة من استثناءات التقويم في Aspose.Tasks
# تعيين التقويم القياسي ومعالجة الاستثناءات في Aspose.Tasks

## مقدمة

في إدارة المشاريع، تعد الجدولة الدقيقة أمرًا حيويًا لتحقيق النجاح. ومع ذلك، غالبًا ما تتطلب سيناريوهات العالم الحقيقي انحرافات عن الجداول القياسية بسبب العطلات أو المناسبات الخاصة أو عوامل أخرى. يوفر Aspose.Tasks for .NET حلاً قويًا لإدارة مثل هذه الاستثناءات من خلال ميزة مجموعة استثناءات التقويم الخاصة به. سيرشدك هذا البرنامج التعليمي خلال عملية استخدام هذه الوظيفة خطوة بخطوة.
التخطيط الدقيق هو العمود الفقري لأي مشروع ناجح، وغالبًا ما تحتاج الخطط الواقعية إلى الانحراف عن تقويم العمل الافتراضي بسبب العطلات أو الفعاليات الخاصة أو الإغلاقات غير المتوقعة. تجعل Aspose.Tasks لـ .NET من السهل **تعيين التقويم القياسي** ثم إضافة استثناءات مخصصة فوقه. في هذا الدرس ستتعلم كيفية تحميل تقويم المشروع، تعيين تقويم قياسي، وإدارة عطلات المشروع من خلال ميزة مجموعة استثناءات التقويم.

## المتطلبات الأساسية
## إجابات سريعة
- **ما الذي يفعله “set standard calendar”?** يعيد ضبط التقويم إلى وقت العمل الافتراضي (من 9 ص إلى 5 م، من الإثنين إلى الجمعة) قبل إضافة الاستثناءات المخصصة.
- **ما الطريقة التي تمسح الاستثناءات الموجودة؟** `Calendar.Exceptions.Clear()` يزيل جميع الاستثناءات المعرفة مسبقًا.
- **كيف يمكنني إضافة عطلة؟** أنشئ `CalendarException` مع `DayWorking = false` وأضفه إلى المجموعة.
- **هل أحتاج إلى إعادة تحميل المشروع بعد التغييرات؟** لا، يتم تطبيق التغييرات مباشرة على كائن `Project` الموجود في الذاكرة.
- **ما المكتبات المطلوبة؟** Aspose.Tasks لـ .NET (أي نسخة .NET مدعومة) ومساحات الأسماء `System`.

قبل الغوص في البرنامج التعليمي، تأكد من أن لديك المتطلبات الأساسية التالية:
## المتطلبات المسبقة

1. Aspose.Tasks لـ .NET: تأكد من تثبيت المكتبة. يمكنك تنزيله[هنا](https://releases.aspose.com/tasks/net/).
2. المعرفة الأساسية بـ C#: الإلمام بلغة البرمجة C# سيكون مفيدًا في فهم الأمثلة.
3. بيئة التطوير: قم بإعداد بيئة التطوير المفضلة لديك، مثل Visual Studio أو JetBrains Rider.
1. **Aspose.Tasks لـ .NET** – قم بتنزيله [هنا](https://releases.aspose.com/tasks/net/).
2. معرفة أساسية بـ **C#** – ستكتب بعض المقاطع القصيرة.
3. بيئة تطوير مثل **Visual Studio** أو **JetBrains Rider**.

## استيراد مساحات الأسماء

قبل أن تبدأ العمل مع Aspose.Tasks لـ .NET، تحتاج إلى استيراد مساحات الأسماء المطلوبة إلى مشروعك. تمكنك هذه الخطوة من الوصول إلى الفئات والأساليب اللازمة لإدارة استثناءات التقويم.
تمنحك توجيهات `using` هذه الوصول إلى الفئات المطلوبة لتعامل مع التقويم.

```csharp
using Aspose.Tasks;
using System;
using System.Collections.Generic;
```

## ما هو استثناء التقويم؟

```
*استثناء التقويم* يمثل فترة يتم فيها تعديل جدول العمل العادي – على سبيل المثال، عطلة على مستوى الشركة أو جدول عمل إضافي مؤقت. بإضافة استثناءات إلى التقويم يمكنك نمذجة القيود الواقعية دون تغيير التقويم الأساسي.

الآن، دعونا نقسم المثال المقدم إلى خطوات متعددة:
## كيفية تعيين التقويم القياسي في Aspose.Tasks

## الخطوة 1: تحميل المشروع واسترداد التقويم
الخطوة الأولى هي تحميل ملف المشروع واسترجاع التقويم الذي تريد العمل معه.

```csharp
var project = new Project(DataDir + "project_update_test.mpp");
var calendar = project.Calendars.GetByUid(3);
```

في هذه الخطوة، نقوم بتحميل ملف المشروع واسترجاع التقويم المطلوب بواسطة UID الخاص به.
### الخطوة 1: مسح الاستثناءات الموجودة وإعادة تعيين إلى تقويم قياسي

## الخطوة 2: مسح الاستثناءات الموجودة وتعيين التقويم القياسي
قبل إضافة قواعد جديدة، من الممارسات الجيدة مسح أي استثناءات قديمة و**تعيين التقويم القياسي**. هذا يضمن أساسًا نظيفًا.

```csharp
calendar.Exceptions.Clear();
Calendar.MakeStandardCalendar(calendar);
```

تقوم هذه الخطوة بمسح أي استثناءات موجودة من التقويم وتعيينه على تكوين قياسي.
### الخطوة 2: تعريف استثناء وقت العمل

## الخطوة 3: تحديد وإضافة استثناء وقت العمل
أحيانًا تحتاج إلى إنشاء جدول مؤقت (مثلاً، ساعات ممتدة لإطلاق منتج). يحدد المقتطف التالي استثناء وقت عمل يمتد لعدة أيام ويتضمن فترتين عمل يوميتين.

```csharp
var exception = new CalendarException();
Expand All @@ -74,9 +87,9 @@ exception.WorkingTimes.Add(wt2);
calendar.Exceptions.Add(exception);
```

تحدد هذه الخطوة استثناء وقت العمل بتواريخ بدء وانتهاء محددة، بالإضافة إلى أوقات العمل ضمن تلك التواريخ، وتضيفه إلى التقويم.
### الخطوة 3: إضافة استثناءات وقت غير العمل (العطلات)

## الخطوة 4: تحديد وإضافة استثناءات وقت غير العمل
لـ **إدارة عطلات المشروع**، أنشئ استثناءات حيث تكون `DayWorking` مساوية لـ `false`. المثال أدناه يضيف كتلة عطلة لمدة يومين.

```csharp
var nonWorkingExceptions = new CalendarException[2];
Expand All @@ -86,14 +99,14 @@ nonWorkingExceptions[0].ToDate = new DateTime(2020, 4, 18, 17, 0, 0);
nonWorkingExceptions[0].DayWorking = false;
nonWorkingExceptions[0].Name = "Exception 2";

// أضف المزيد من الاستثناءات إذا لزم الأمر
// Add more exceptions if needed

calendar.Exceptions.AddRange(nonWorkingExceptions);
```

تحدد هذه الخطوة استثناءات أوقات غير أوقات العمل، مثل أيام العطل، وتضيفها إلى التقويم.
### الخطوة 4: عرض استثناءات التقويم (التحقق)

## الخطوة 5: عرض استثناءات التقويم
بعد إضافة الاستثناءات، غالبًا ما ترغب في التحقق من تسجيلها بشكل صحيح. الحلقة التالية تطبع تفاصيل كل استثناء إلى وحدة التحكم.

```csharp
Console.WriteLine("Exceptions of calendar {0}: ", calendar.Exceptions.ParentCalendar.Name);
Expand All @@ -109,9 +122,9 @@ foreach (var calendarException in calendar.Exceptions)
}
```

تعرض هذه الخطوة استثناءات التقويم المضافة مع تفاصيلها.
### الخطوة 5: إزالة جميع الاستثناءات (تنظيف)

## الخطوة 6: إزالة كافة الاستثناءات
إذا كنت بحاجة إلى إرجاع التقويم إلى حالته الأصلية، يمكنك إزالة كل استثناء برمجيًا.

```csharp
Console.WriteLine("Remove calendar exceptions...");
Expand All @@ -122,36 +135,44 @@ foreach (var calendarException in exceptions)
}
```

وأخيرًا، تقوم هذه الخطوة بإزالة كافة الاستثناءات من التقويم.

## خاتمة
## المشكلات الشائعة والحلول

تعد إدارة استثناءات التقويم أمرًا بالغ الأهمية لجدولة المشروع بدقة. يعمل Aspose.Tasks for .NET على تبسيط هذه المهمة من خلال توفير مجموعة شاملة من الميزات، بما في ذلك مجموعة استثناءات التقويم. باتباع الخطوات الموضحة في هذا البرنامج التعليمي، يمكنك التعامل بكفاءة مع سيناريوهات الجدولة المختلفة داخل مشاريعك.
| المشكلة | السبب | الحل |
|-------|--------|-----|
| عدم ظهور الاستثناءات بعد الحفظ | لم يتم حفظ المشروع بعد التعديلات | استدعِ `project.Save("output.mpp")` بعد إجراء التغييرات. |
| تسبب الاستثناءات المتداخلة ساعات عمل غير متوقعة | Aspose.Tasks يستخدم آخر استثناء مضاف للفترات المتداخلة | رتّب استدعاءات `Add` بعناية أو اضبط الأولويات يدويًا. |
| `MakeStandardCalendar` يعيد تعيين أوقات العمل المخصصة | يقوم عمدًا بمسح الأوقات المخصصة؛ أعد إضافتها بعد الاستدعاء إذا لزم الأمر. | أضف كائنات `WorkingTime` المخصصة بعد استدعاء `MakeStandardCalendar`. |

## الأسئلة الشائعة
## الأسئلة المتكررة

### س1: هل يمكنني إضافة استثناءات متعددة إلى تقويم واحد؟
**س: هل يمكنني إضافة استثناءات متعددة إلى تقويم واحد؟**
ج: نعم، يمكنك إضافة استثناءات متعددة إلى تقويم باستخدام طريقة `AddRange`.

ج1: نعم، يمكنك إضافة استثناءات متعددة إلى تقويم باستخدام الخيار`AddRange` طريقة.
**س: كيف يمكنني التعامل مع الاستثناءات المتكررة، مثل العطلات الأسبوعية؟**
ج: يمكنك حساب الاستثناءات المتكررة برمجيًا وإضافتها إلى التقويم باستخدام منطق مخصص.

### س2: كيف يمكنني التعامل مع الاستثناءات المتكررة، مثل العطلات الأسبوعية؟
**س: هل من الممكن استيراد استثناءات التقويم من مصادر خارجية؟**
ج: نعم، يمكنك قراءة استثناءات التقويم من مصادر خارجية مثل قواعد البيانات أو ملفات CSV ودمجها في مشروعك.

ج٢: يمكنك حساب الاستثناءات المتكررة برمجيًا وإضافتها إلى التقويم باستخدام المنطق المخصص.
**س: ماذا يحدث إذا كانت هناك استثناءات متداخلة في التقويم؟**
ج: يسمح Aspose.Tasks لـ .NET بالتعامل مع الاستثناءات المتداخلة عبر تعريف الأولويات أو حل النزاعات بناءً على متطلبات مشروعك.

### س3: هل من الممكن استيراد استثناءات التقويم من مصادر خارجية؟
**س: هل يمكنني تخصيص أوقات العمل لكل يوم داخل استثناء؟**
ج: نعم، يمكنك تحديد أوقات عمل مخصصة لأيام معينة داخل استثناء لتلبية احتياجات الجدولة المحددة.

ج3: نعم، يمكنك قراءة استثناءات التقويم من مصادر خارجية مثل قواعد البيانات أو ملفات CSV ودمجها في مشروعك.
## الخلاصة

### س 4: ماذا يحدث إذا كانت هناك استثناءات متداخلة في التقويم؟
من خلال **تعيين التقويم القياسي** أولاً ثم إضافة استثناءات مخصصة، تحصل على تحكم كامل في جدولة المشروع، مما يجعل من السهل **إدارة عطلات المشروع** وأي جداول زمنية خاصة أخرى. توفر مجموعة استثناءات التقويم في Aspose.Tasks طريقة برمجية نظيفة لنمذجة التقويمات الواقعية مباشرة داخل تطبيقات .NET الخاصة بك.

ج4: يسمح لك Aspose.Tasks for .NET بمعالجة الاستثناءات المتداخلة عن طريق تحديد الأولويات أو حل التعارضات بناءً على متطلبات مشروعك.
---

### س5: هل يمكنني تخصيص أوقات العمل لكل يوم ضمن استثناء؟
**آخر تحديث:** 2026-04-09
**تم الاختبار مع:** Aspose.Tasks 24.12 لـ .NET
**المؤلف:** Aspose

ج5: نعم، يمكنك تحديد أوقات عمل مخصصة للأيام الفردية ضمن استثناء لتلبية احتياجات الجدولة المحددة.
{{< /blocks/products/pf/tutorial-page-section >}}

{{< /blocks/products/pf/main-container >}}
{{< /blocks/products/pf/main-wrap-class >}}

{{< blocks/products/products-backtop-button >}}
{{< blocks/products/products-backtop-button >}}
Loading