المبرمج عبدالكريم
06-06-07, 09:46 AM
بسم الله الرحمن الرحيم
تحويل التاريخ من الهجري إلى الميلادي والعكس
إليكم شرح كيفية عمل التحويل بين التاريخين بدون أي معادلات حسابية.
أولا : التحويل من التاريخ الميلادي إلى الهجري
Dim gDate As Date, hDate As String
gDate = InputBox("ادخل التاريخ الميلادي")
Calendar = vbCalHijri
hDate = gDate
Calendar = vbCalGreg
MsgBox "التاريخ يوافق " & hDate & "هجريا "
شرح الكود :
Dim gDate As Date, hDate As String
قمنا بالإعلان عن متغيرين :
الأول gDate من نوع Date خاص بالتاريخ المراد تحويله وهنا هو الميلادي (الإغريقي)
الثاني hDate من نوع String خاص بالتاريخ المراد التحويل إليه وهنا الميلادي
وسأذكر سبب جعل المتغير نصي لاحقا
السطر :
gDate = InputBox("ادخل التاريخ الميلادي")
لطلب التاريخ الميلادي من المستخدم وإدخاله في المتغير gDate
السطر :
Calendar = vbCalHijri
لتحويل نظام التقويم في برنامج إلى النظام الهجري (وهذه أهم نقطة في البرنامج)
السطر :
hDate = gDate
في هذه الحالة – وبعد أن غيرنا نظام التقويم – أصبح المتغير gDate يحتوي على التاريخ هجريا
لذلك أخذنا هذه القيمة في المتغير النصي hDate
السطر :
Calendar = vbCalGreg
أعدنا التقويم إلى النظام الميلادي
وأصبح الآن المتغير gDate يحتوي على التاريخ الذي أدخله المستخدم ميلاديا (عاد كما كان)
ولكن ماذا حصل للمتغير hDate ؟ هل تغير إلى النظام الميلادي؟ هل له علاقة بنظام التقويم؟
في الحقيقة لا ... والسبب هو أن المتغير hDate هو متغير نصي (String) وليس تاريخي (Date)
أي أنه لا علاقة له بنظام التاريخ.
وهذا هو تفسير سبب جعل المتغير hDate نصياً وليس من نوع Date
أخيرا :
MsgBox "التاريخ يوافق " & hDate & "هجريا "
وهي إظهار نتيجة التحويل في مربع رسالة ..
ثانياً : التحويل من التاريخ الهجري إلى الميلادي
بما أنك فهمت التحويل من التاريخ الميلادي إلى الهجري.
فسأقوم فقط بكتابة الكود :
Dim hDate As Date, gDate As String
Calendar = vbCalHijri
hDate = InputBox("ادخل التاريخ الهجري")
gDate = hDate
Calendar = vbCalGreg
MsgBox "التاريخ يوافق " & hDate & "ميلاديا "
بإمكانكم تجربة البرنامج بتحويل تاريخ ميلادي :
هجري : 21-6-1409
ميلادي : 28-1-1989
هذا وصلى الله وسلم على سيدنا محمد وعلى آله وصحبه أجمعين.
لا تنسوني من الدعاء .
أدعوا الله بأن يدخلني الجنة
وبأن يوفقني في ثالث ثانوي.
تحويل التاريخ من الهجري إلى الميلادي والعكس
إليكم شرح كيفية عمل التحويل بين التاريخين بدون أي معادلات حسابية.
أولا : التحويل من التاريخ الميلادي إلى الهجري
Dim gDate As Date, hDate As String
gDate = InputBox("ادخل التاريخ الميلادي")
Calendar = vbCalHijri
hDate = gDate
Calendar = vbCalGreg
MsgBox "التاريخ يوافق " & hDate & "هجريا "
شرح الكود :
Dim gDate As Date, hDate As String
قمنا بالإعلان عن متغيرين :
الأول gDate من نوع Date خاص بالتاريخ المراد تحويله وهنا هو الميلادي (الإغريقي)
الثاني hDate من نوع String خاص بالتاريخ المراد التحويل إليه وهنا الميلادي
وسأذكر سبب جعل المتغير نصي لاحقا
السطر :
gDate = InputBox("ادخل التاريخ الميلادي")
لطلب التاريخ الميلادي من المستخدم وإدخاله في المتغير gDate
السطر :
Calendar = vbCalHijri
لتحويل نظام التقويم في برنامج إلى النظام الهجري (وهذه أهم نقطة في البرنامج)
السطر :
hDate = gDate
في هذه الحالة – وبعد أن غيرنا نظام التقويم – أصبح المتغير gDate يحتوي على التاريخ هجريا
لذلك أخذنا هذه القيمة في المتغير النصي hDate
السطر :
Calendar = vbCalGreg
أعدنا التقويم إلى النظام الميلادي
وأصبح الآن المتغير gDate يحتوي على التاريخ الذي أدخله المستخدم ميلاديا (عاد كما كان)
ولكن ماذا حصل للمتغير hDate ؟ هل تغير إلى النظام الميلادي؟ هل له علاقة بنظام التقويم؟
في الحقيقة لا ... والسبب هو أن المتغير hDate هو متغير نصي (String) وليس تاريخي (Date)
أي أنه لا علاقة له بنظام التاريخ.
وهذا هو تفسير سبب جعل المتغير hDate نصياً وليس من نوع Date
أخيرا :
MsgBox "التاريخ يوافق " & hDate & "هجريا "
وهي إظهار نتيجة التحويل في مربع رسالة ..
ثانياً : التحويل من التاريخ الهجري إلى الميلادي
بما أنك فهمت التحويل من التاريخ الميلادي إلى الهجري.
فسأقوم فقط بكتابة الكود :
Dim hDate As Date, gDate As String
Calendar = vbCalHijri
hDate = InputBox("ادخل التاريخ الهجري")
gDate = hDate
Calendar = vbCalGreg
MsgBox "التاريخ يوافق " & hDate & "ميلاديا "
بإمكانكم تجربة البرنامج بتحويل تاريخ ميلادي :
هجري : 21-6-1409
ميلادي : 28-1-1989
هذا وصلى الله وسلم على سيدنا محمد وعلى آله وصحبه أجمعين.
لا تنسوني من الدعاء .
أدعوا الله بأن يدخلني الجنة
وبأن يوفقني في ثالث ثانوي.