الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل التاريخ من الهجري إلى الميلادي والعكس

مغلق
بدأه المبرمج عبدالكريم في 23 نوفمبر 2006 · 6 رد · 8,405 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

تحويل التاريخ من الهجري إلى الميلادي والعكس

==============

لتحميل الموضوع بصيغة PDF

انقر هنا للتحميل

http://al-dheya.net/download/books/Hijri2Greg.pdf

==============

حتى تكون قادرا على عمل برنامج مثل برنامج Hijri2Greg (لمزيد من المعلومات حول البرنامج انقر هنا)

إليك شرح كيفية عمل التحويل بين التاريخين بدون أي معادلات حسابية.

أولا : التحويل من التاريخ الميلادي إلى الهجري

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

هذا وصلى الله وسلم على سيدنا محمد وعلى آله وصحبه أجمعين.

لا تنسوني من الدعاء .

أدعوا الله بأن يدخلني الجنة

وبأن يوفقني في ثالث ثانوي.

تم تعديل هذه المشاركة بواسطة المبرمج عبدالكريم في 23 نوفمبر 2006 في 01:11

#3

السلام عليكم

أخى المبرمج عبد الكريم

موضوع رائع كما عودتنا

Never Give Up You Are Programmer

Being Genius Is The Step Before Madness

Artificial Intelligence Is No Match For Natural Stupidity

#4

لكن اللي اعرفه ان هناك ايام معينة في السنة لا يمكن تحويلها

بالذات اذا كان الشهر 28 يوم او 31 يوم

يهمني رايك

#5

مشكور وجزاء الله خير

redahashem

رضا هاشم

اللهم اصلح امورالمسلمين

سبحان الله وبحمده سبحان الله العظيم

اللهم اهلك من سبب في فرقتنا وسفك دمائنا وزاد همنا وكربنا

#6

العفو اخواني

..

المعذرة تم حذف ردودي على هذا الموضوع بسبب الصيانة

اقتباس
بالذات اذا كان الشهر 28 يوم او 31 يوم

لا اظن ذلك

ولكن قال لي شخص بانه كل اربع سنين يكون هناك فرق يوم ثم اربع اخرى يكون بدون فرق وهكذا ...

#7

الحل موجود في هذا الرابط

/index.php?showtopic=112570

هذا الموضوع مغلق.

مواضيع مشابهة