بسم الله الرحمن الرحيم
كل عام وانتم بخير وصحه وسلامه بمناسبة حلول شهر رمضان الكريم ( فنحن مازلنا في العشر الأولي من رمضان وهي أيام الرحمه من الله , فأللهم ارحمنا برحمتك اللهم أمين )
المجموعة System.DateTime
توفر هذه المجموعة طريقة التعامل مع التاريخ والوقت
بالإضافة إلي التعامل مع التقويمات المختلفه وقد قمت بإعداد نوعين فقط من التقاويم وهما التقويم الهجري والتقويم الميلادي الغريغوري ويمكننا فيما بعد إضافه اي تقويمات أخري
تضم هذه المجموعة فئات عديدة ومن أهمها ما يلي
+ Date Class
تتميز هذه الفئة بالتالي :
- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System
- تعتبر الفئة الخاصة للتعامل مع التاريخ بغض التظر عن تقويم هذا التاريخ
+ Time Class
تتميز هذه الفئة بالتالي :
- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System
- تعتبر الفئة الخاصة للتعامل مع الوقت
+ TimeZone Class
تتميز هذه الفئة بالتالي :
- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System
- هي فئة مجردة abstract ( لا يمكننا تخليق كائنات منها )
- تعبر هذه الفئة عن الوقت حسب الموقع الجغرافي , وهي خطوط الطول ( حيث أن خط جرنيتش هو خط الصفر )
+ Calendar Class
تتميز هذه الفئة بالتالي :
- هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System
- هي فئة مجردة abstract ( لا يمكننا تخليق كائنات منها )
- تعبر هذه الفئة عن مميزات اي تقويم بشكل عام , حيث بالإعتماد علي هذه الفئة يمكننا بناء التقاويم أمثال التقويم الهجري
+ HijriCalendar Class
تتميز هذه الفئة بالتالي :
- هذه الفئة مشتقة من الفئة Calendar
- توفر أسلوب التعامل مع التاريخ من خلال التقويم الهجري
- يمكننا أيضا القيام بعمليه تحويل التاريخ بالتقويم الهجري إلي التاريخ المقابل له في اي تقويم أخر
+ GregorianCalendar Class
تتميز هذه الفئة بالتالي :
- هذه الفئة مشتقة من الفئة Calendar
- توفر أسلوب التعامل مع التاريخ من خلال التقويم الميلادي الغريغوري
- يمكننا أيضا القيام بعمليه تحويل التاريخ بالتقويم الميلادي الغريغوري إلي التاريخ المقابل له في اي تقويم أخر
ويوضح الشكل التالي تركيب المجموعة System.DateTime
(لاحظ أن الأعضاء أمثال الدوال والثوابت والمتغيرات التي تحتها خط تعبر عن أعضاء إستاتيكية Static members
والأعضاء المائلة italic هي أعضاء مجردة abstract )

لاحظ أن المجلد System.DateTime يحتوي علي التالي
- الملف Date.php يحتوي علي الفئة Date
- الملف Time.php يحتوي علي الفئة Time
- الملف TimeZone.php يحتوي علي الفئة TimeZone
- الملف CalendarLanguage.php يحتوي علي الفئة CalendarLanguage
- الملف CalendarStyle.php يحتوي علي الفئة CalendarStyle
- الملف Calendar.php يحتوي علي الفئة Calendar
- الملف HijriCalendar.php يحتوي علي الفئة HijriCalendar
- الملف GregorianCalendar.php يحتوي علي الفئة GregorianCalendar
كيف يمكننا إستخدام هذه الفئات :
سوف ندرج في مجلد ال bin مجموعة ال System.DateTime كما يلي

يمكننا إستخدام تلك الفئات من خلال عمل تضمين including لمحتويات الملف التالي
WebApplication4/bin/System.DateTime.php
وهذا هو محتوي الملف
<? include_once "System.php"; include_once "System.Collections.php"; include_once "System.DateTime/Time.php"; include_once "System.DateTime/Date.php"; include_once "System.DateTime/TimeZone.php"; include_once "System.DateTime/CalendarLanguage.php"; include_once "System.DateTime/CalendarStyle.php"; include_once "System.DateTime/Calendar.php"; include_once "System.DateTime/GregorianCalendar.php"; include_once "System.DateTime/HijriCalendar.php"; ?>
مثال
<script language="php"> include_once "../bin/System.DateTime.php"; echo "التاريخ الأن بالتقويم الميلادي : " . Date::Now( new GregorianCalendar() )->ToString() . "<br>"; echo "التاريخ الأن بالتقويم الهجري : " . Date::Now( new HijriCalendar() )->ToString() . "<br>"; echo "الوقت الأن : " . Time::Now()->ToString() . "<br><br>"; $date = new Date(2004,10,3); echo "[هل هذا التاريخ صحيح ؟] " . ( $date->ValideDate(new GregorianCalendar())? "نعم" : "لا" ) . "<br>"; $date = new Date(2004,10,31); echo "[هل هذا التاريخ صحيح ؟] " . ( $date->ValideDate(new GregorianCalendar())? "نعم" : "لا" ) . "<br>"; $date = new Date(2004,10,32); echo "[هل هذا التاريخ صحيح ؟] " . ( $date->ValideDate(new GregorianCalendar())? "نعم" : "لا" ) . "<br>"; echo "[GetTimeStamp] " . $date->GetTimeStamp(); </script>
مثال أخر لتحويل التاريخ من التقاويم المختلفة
<script language="php"> include_once "../bin/System.DateTime.php"; $GrgCalendar = new GregorianCalendar(); $date = new Date(2004,10,24); // التحويل من ميلادي إلي هجري echo $GrgCalendar->Convert( $date, new HijriCalendar() )->ToString() . "<br>"; $HjCalendar = new HijriCalendar(); $date = new Date(1425,9,1); // التحويل من هجري إلي ميلادي echo $HjCalendar->Convert( $date, new GregorianCalendar() )->ToString() . "<br>"; </script>
وقد أرفقت هنا مثال لإستخدام المجموعة System.DateTime
(لاحظ أن هذا الإطار يعمل مع الإصدار الخامس PHP5)
في إنتظار اي إستفسار في هذا الموضوع
انتظروني قريبا مع الدرس القادم والمجموعة System.Drawing , والله الموفق

