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

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

رائج
بدأه الرمال الذهبيه في 12 يونيو 2002 · 7 رد · 43,803 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله و بركاته

اخواني الأعضاء

أود ان اشارك معكم بجهد متواضع فلست مبرمج محترف لكوني ابتعدت عن البرمجه لفتره طويله. فأقبلوا مني هذا الجهد و غضوا الطرف عن الخلل.

---------------------------

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

قد يكون موضوع تحويل التاريخ الهجري الى ميلادي و العكس موضوع قديم و تطرق اليه بعض الأخوان و عملوا له أدوات لكن احببت ان اضيف بعض ما عندي حول هذا الموضوع.

--------------------------

مقدمه عن التقويم الهجري و الميلادي

التقويم الهجري :

يعتمد التقويم الهجري على الدوره القمريه او ما يسمي بالسنه القمريه العاديه و تتكون السنه الهجريه من 354 يوم.

ولكن في الحقيقه طول السنه القمريه هو 354 يوم و 8 ساعات و 48 دقيقه و 36 ثانيه. اي ان الشهر في السنه القمريه هو عباره عن 29 يوم و 12 ساعه و 44 دقيقه و 3 ثواني.

اي هناك فرق يقدر بـ (11/30) من اليوم (أي 8 ساعات و 48 دقيقه و 36 ثانيه) بين السنه القمريه و السنه الهجريه (354 يوم) حيث ان السنه القمريه أطول.

و يتم تعويض هذا الفرق بأضافه 11 يوم بعد كل 30 سنه هجريه.

و من اشهر الطرق المستخدمه للتعويض هو اعتبار السنوت 2 ، 5 ، 7 ،10 ، 13 ، 16 ، 18 ، 21 ، 24 ، 26 ، 29 سنوات كبيسه أي يضاف يوم واحد الى شهر ذو الحجه (آخر شهر في السنه) ليصبح بذلك 30 يوم. حيث في السنه الهجريه العاديه شهر ذو الحجه يتكون من 29 يوم. و بهذا الشكل يكون وزعنا 11 يوم على السنوات خلال الـ 30 سنه هجريه.

و بهذا الشكل تكون السنه الهجريه العاديه تتكون من 354 يوم و السنه الهجريه الكبيسه تتكون من 355 يوم.

و لمعرفه اذا ما كانت السنه الهجريه هي سنه كبيسه او سنه عاديه يمكن عمل الحساب التالي:

قسم السنه على 30 فإذا كان باقي القسمه 2 ، 5 ، 7 ،10 ، 13 ، 16 ، 18 ، 21 ، 24 ، 26 ، 29 فهي إذن سنه كبيسه و عدد ايامها 355 يوم و شهر ذو الحجه سيكون 30 يوم. و الا فيه سنه عاديه تتكون من 354 يوم و شهر ذو الحجه فيها سيكون 29 يوم.

مثال: عام 1423 هـ هل هو سنه كبيسه؟

1423 ÷ 30 = 47.433333 باقي القسمه (0.43333×30=13) يعني سنه كبيسه

مثال : عام 1400 هـ هل هي سنه كبيسه؟

1400 ÷ 30 = 46.666666 باقي القسمه (0.66666×30=20) يعني سنه عاديه

التقويم الميلادي:

يعتمد التقويم الميلادي على الدوره الشمسيه و تتكون السنه الميلاديه من 365 يوم.

ولكن السنه الشمسيه و التي تحسب بدوره كامله للأرض حول الشمس طولها 365 يوم و5 ساعات و 48 دقيقه و 46 ثانيه.

أي هناك فرق يقدر بـ (11 دقيقه تقريبا) بين السنه الميلاديه و السنه الشمسيه حيث السنه الميلاديه أطول بقليل.

و يظهر هذا الفرق بمقدار 11 يوم في القرن 16 ميلادي و قد تم تصحيحه في عام 1582م باعتبار 5 أكتوبر من ذلك العام بـ 15 أكتوبر. و لتفادي تكرار ذلك تم اعتبار كل سنه تقبل القسمه على 400 بدون باقي تعتبر سنه ذات 366 يوم أي سنه كبيسه.

علما بأنه عدد الأيام الأشهر في السنه الميلاديه مختلفه حيث 4 أشهر تتكون من 30 يوم و 7 أشهر من 31 يوم و شهر واحد من 28 يوم (او 29 في السنه الكبيسه) أي ما مجموعه 365 يوم للسنه العاديه أو 366 للسنه الكبيسه.

و على سبيل المثال يعتبر عام 1600 ميلادي سنه كبيسه بينما الأعوام 1700 و 1800 و 1900 سنوات عاديه بينما عام 2000م سنه كبيسه.

طريقه سريعه للتحويل بين التقومين:

1-من هجري لميلادي.

السنه الهجريه = 1.030684×( السنه الميلاديه – 621.5643)

مثال : لتحويل عام 1994 م الى هجري.

السنه الهجريه = 1.030684× ( 1994- 621.5643) = 1414.5475

اي السنه هي 1414 هـ

لمعرفه الشهر = 0.5475 × 12 =6.57

أي الشهر السادس شهر رجب

لمعرفه اليوم = 0.57 × 30= 17.1

أي 17 يوم من رجب

هذا يعني أن السنه الميلاديه 1994 م بدأت في 17/6/1414هـ و لكن في الحقيقه هي بدات في 19/6/1414هـ يعني هناك خطأ مقداره يومين بأستخدام هذه الطريقه.

2-من ميلادي لهجري.

السنه الميلاديه = 0.970229× السنه الهجريه + 621.5643

مثال : لتحويل عام 1408 هـ الى ميلادي.

السنه الميلاديه = 1408هـ × 0.970229 + 621.5643 = 1987.6467

أي السنه هي 1987 م

لمعرفه الشهر = 0.6467 × 12 = 7.7604

أي اشهر 7 و هو اغسطس

لمعرفه اليوم = 0.7604 × 31 = 23.6 تقريبا 24 يوم

و هذا يعني ان السنه الهجريه 1408 بدأت في تاريخ 24/7/1987م لكن السنه بدأت في 26/7/1987م أي بمقدار خطأ يساوي يومين بأستخدام هذه المعادله.

بمجرد تحديد بدايه السنه في أي من التقويمين يمكن بعد ذلك معرف أي تاريخ في تلك السنه وذلك بأضافه الأيام و الأشهر لمعرفه ذلك التاريخ.

طريقه أخرى لتحويل السنه

تحويل من سنه هجريه لميلاديه

السنه الميلاديه = (السنه الهجريه+622) - (السنه الهجريه÷ 33)

مثال : عام 1423هـ كم ميلادي؟

السنه الميلاديه= (1423+ 622)- (1423÷33) = 2045-43.1212=2002 (جبر الكسر)

تحويل من سنه ميلاديه لسنه هجريه

السنه الهجريه = (السنه الميلاديه -622) + ((السنه الميلاديه -622)÷32)

مثال عام 2001 م كم هجري؟

السنه الهجريه = (2001-622) + ((2001-622)÷32)= 1379 + (1379 ÷32) = 1379 + 43.09= 1422 هـ

#2

آله تحويل التاريخ بأستخدام لغه VB6

----------------------------

سيكون الشرح باسهاب لأخوننا المبتدأين في البرمجه لتعم الفائده.

_______________________

مكونات الآله:

- نموذج واحد (Form)

- 4 ازارير أمر( Command button)

- 6 مربعات نص (Text Box)

- مربع عنوان (Lable)

- و حدتين نمطيه. (Module)

------------------------

فكره البرنامج :

نريد ان نصنع آله تحول التاريخ الهجري الى ميلادي و بالعكس و ذلك بأن نضع التاريخ مقسم على ثلاث مربعات نص يكون في مربع النص الأول اليوم و في مربع النص الثاني الشهر و في مربع النص الثالث السنه ثم نضغط زر فيتم حساب التاريخ المطلوب و إظهار النتيجه في ثلاثه مربعات نص (غير السابقه) أخرى و بنفس التقسيم.

كما نريد ان يظهر لنا البرنامج أسم اليوم المقابل لذلك التاريخ في مربع نص منفرد.

و نريد زر لمسح التواريخ من مربعات النص لكي ندخل تواريخ غيرها

كما نريد زر لأنها البرنامج.

و نريد ان تظهر الآله تاريخ اليوم في حاله ان المستخدم ضغط زر التحويل بدون إدخال للتاريخ.

---------------------------

طريقه البرمجه:

- سنستخدم مربعات النص لإدخال التاريخ و لعرضه في نفس الوقت بحيث نخصص ثلاثه مربعات نص لأدخال و عرض التاريخ الهجري و ثلاثه مربعات نص أخرى لأدخال و عرض التاريخ الميلادي.

- برمجه زر ليقوم بالتحويل من هجري الى ميلادي.

- برمجه زر ليقوم بالتحويل من ميلادي الى هجري.

- برمجه وحدتين نمطيه بحيث تقوم كل وحده بتنفيذ برنامج محدد عندما تستدعى.

---------------------------

الطريقه:

1- شغل برنامج الفيجول بيسك و اختار انشاء مشروع تنفيذي اساسي (Standard EXE)

- من قائمه الأدوات ضع على النموذج 6 مربعات نص و مربع عنوان و 4 أزارير أمر.

s2

3- سنقوم بتعديل خصائص الكائنات و سنبدأ بالنموذج :

اهم خصائص النموذج في الصوره التاليه:

f1

بالنسبه لمربعات النص سنقوم بتسميها كالتالي

مربع نص Text 1 سنسميه Hy

مربع نص Text 2 سنسميه Hm

مربع نص Text 3 سنسميه Hd

مربع نص Text 4 سنسميه Gy

مربع نص Text 5 سنسميه Gm

مربع نص Text 6 سنسميه Gd

مربع عنوان Label1 سنسميه L1

و لهم الخصائص التاليه:

مربعات النص

Hy.jpg

مربع عنوان

L1.jpg

أما بالنسبه للأزارير سنسميها كالتالي:

زر الأمر Command 1 سنسميه C1

زر الأمر Command 2 سنسميه C2

زر الأمر Command 3 سنسميه C3

زر الأمر Command 4 سنسميه C4

و لهم الخصائص التاليه

C1

البرمجه :

سنقوم ببرمجه سته كائنات اربع منها هي الأزارير لكون ان المستخدم سيقوم بالضغط على الإزرار لتنفيذ عمل ما و سنقوم ببرمجه كائنين خارجيين (وحدتين نمطيه) يتم استدعائهم اثناء تنفيذ بعض الأزارير

----------------------------------------

اضغط على النموذج بالفأره مرتين و اكتب البرنامج التالي :

p1.jpg

حددت بالمربع مكان استدعاء الوحدات النمطيه

p2.jpg

p3.jpg

p4.jpg

سنضيف الآن وحده نمطيه و ذلك بأختيار الوحده من قائمه Project في شريط ألأوامر

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

m1.jpg

و اكتب البرنامج التالي فيها

m2.jpg

لكون السطر طويل (المعلم بالصندوق الأزرق) ستجد تكملته بالصوره التاليه

m3.jpg

قم بأنشاء وحده نمطيه ثانيه و اكتب فيها البرنامج التالي:

هذه الوحده النمطيه فيها برنامج تحويل التاريخ الهجري الى ميلادي

m4.jpg

انتهينا من صنع الآله طبعا تحتاج تزيين و تلوين و وضع صوره حتى تكون جميله

end

#3

الأله باللغه الأنجليزيه

datecalcE.jpg

لتنزيل البرنامج التنفيذي

أضغط

الأله باللغه العربيه

datecalcA.jpg

لتنزيل البرنامج التنفيذي

أضغط

لتنزيل الكود VB6

أضغط

#4

الله على القوة

وتستاهل

;) (gift) (f)

على هذا المجهود الحلو

#5

شكر جزيلا لمشرفنا القدير حسين على الكلامات الطيبه

و جزاك الله كل خير

#6

السلام عليكم

ارجو من الاخوة المشرفين مراجعة المرفقات الموجودة مع هذا الاموضوع حيث انها لا تعمل

وذلك للاهمية

#7

مشكوررررررررررررررررررررررررررررررررررررررررررررررررررررررر

#8

نناشدكم الله ......... إلا بحثتم لنا عنها

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