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

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

مغلق
بدأه qaher في 29 أبريل 2007 · 20 رد · 4,403 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي كذا مشروع وكلها متوقفة على هذه المشكلة المعقدة

وأنا متأكد أنه 90% منا نواجهة هالمشلكة

خاصة في برامج مثل شؤون الموظفين الذين يتعاملون بالتقويم الهجري والميلادي في نفس الوقت

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

عملت بحث في كثير من المنتديات وحصلت غالبيتها عاملين كود غير مفهوم تماماً أو تجده طويل بحيث يصل الصفحة.

فأنا كمبرمج برامج كبيرة تحتوي على عشرات الtextbox يصعب علي ان اضع صفحة كود لكل textbox.

بالعربي حصلت كل واحد في وادي.

المطلوب:

كود مصغر جدأ يستهدف الtextbox ويقوم بعمل المطلوب.

وصف المشكله كالتالي:

- قواعد البيانات في غالبية التواريخ مخزنة بالميلادي لذا اذا حبينا نعرضها بالهجري نواجه المشكلة

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

الحل المطلوب:

- نبي ندخل التاريخ كهجري في textbox وبضغطة Buttun نريدها ان تتحول إلى ميلادي في داخل textbox أخرى

- نبي ندخل التاريخ كميلادي في textbox وبضغطة Buttun نريدها ان تتحول إلى هجري في داخل textbox أخرى

وياليت محد يقول اعمل بحث تجد الحل!!!

لأنه لي أكثر من أسبوعين وأنا أقوم بالبحث حتى دخت ورح يدوخون كثير من يطلب حل هالمشكلة...

انا عملت برنامج مصغر في فورم يقوم بالتحويل من هجري إلى ميلادي وبالعكس

لكنه لا يعمل..

وهو موجود بالمرفقات

ياليت من لديه الحل ينفذ الحل على البرنامج ويرسل البرنامج كمرفق حتى يستفيد منه الجميع 100% بدل مانحط اكواد هنا وهنا وفي النهاية ماتشتغل

لنضع هنا الحل الصافي...

تقبلوا خالص التحيات

وأطيب الأمنيات

Calender.zip

#2
qaher كتب:
نبي الحل الجذري للتاريخ الهجري والميلادي!!!

لا يوجد شئ في البرمجة اسمه "الحل الصح الوحيد". هناك فقط "الحل الصح الذي يناسبني". ما قد يناسب وضع برنامجك قد لا يناسب غيرك، و العكس صحيح. لذا لمجرد وجود العديد من الحلول لا يعني أن واحد فقط منها هو الصحيح. و لكن عليك إيجاد أيها يناسبك أكثر.

qaher كتب:
عملت بحث في كثير من المنتديات وحصلت غالبيتها عاملين كود غير مفهوم تماماً أو تجده طويل بحيث يصل الصفحة.

فأنا كمبرمج برامج كبيرة تحتوي على عشرات الtextbox يصعب علي ان اضع صفحة كود لكل textbox.

و لماذا تكرر الكود في كل تيكست بوكس؟ ضعه في كلاس لوحده و ناده كل مرة تريده. البرمجة الشيئية التوجه Object Oriented Programming هدفها حل مثل هذه المعضلات.

qaher كتب:
وياليت محد يقول اعمل بحث تجد الحل!!!

لأنه لي أكثر من أسبوعين وأنا أقوم بالبحث حتى دخت ورح يدوخون كثير من يطلب حل هالمشكلة...

للأسف هذه الطريقة الوحيدة للتعلم. لا يمكنك الإعتماد إلى الأبد على سؤال الغير للتعلم. يجب عليك عاجلاً أم آجلاً أن تقوم بعملية بحث. هناك العديد و العديد من المقالات حول هذا الموضوع بالذات في هذا المنتدى بالتحديد. فقط ابحث، و كن صبوراً. الأشياء العظيمة لا تأتي بسهولة.

#4

السلام عليكم ورحمة الله:

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

الملف مرفق..

MyDateTimeP.rar

#5

طريقة مجربة لأخذ تفاصيل اليوم

الحل الصحيح لمشكلة التاريخ الهجري

كالتالي

نفرض أن لدينا 3 أدوات Label

Label1 اليوم

Label2 الشهر

Label3 السنة

الكود كالتالي

Dim ar As New Globalization.HijriCalendar

		Label1.Text = ar.GetDayOfMonth(Date.Today)
		Label2.Text = ar.GetMonth(Date.Today)
		Label3.Text = ar.GetYear(Date.Today)

وعليكم التجربة ورد النتائج

#6

هو بصراحة أفضل حل انك تعمل دالة بنفسك وتريح بالك مثل الشباب

بس مو معقول انه شكرة مايكروسوفت الشركة العملاقة ما لقت حل لمشكلة التاريخ .. صحيح انه المشكلة في الهجري

بس مو عذر لهم أو لنا

#7
Scoool كتب:
هو بصراحة أفضل حل انك تعمل دالة بنفسك وتريح بالك مثل الشباب

بس مو معقول انه شكرة مايكروسوفت الشركة العملاقة ما لقت حل لمشكلة التاريخ .. صحيح انه المشكلة في الهجري

بس مو عذر لهم أو لنا

لكنهم بالفعل قاموا بذلك.

هناك مكتبة كاملة في الدوت نت 2.0 لتقويم أم القرى.

#9

برافو عليكم شباب

شكرا لكم شباب أبو اليسر و سكول و الحامد وأحمد....

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

ويا أخ system Down

إذا ماعندك إفادة للشباب مافي داعي للتجريح

الناس خلقت لبعضها

إذا انتم كبار وخبراء وخلقتم متعلمين مافي داعي للاستحقار

احنا ماخلقنا متعلمين

لسه بنطلب العلم

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

ما شاء الله المنتدى متحف افكار

وصرح عظيم لطالبي العلم والخبرة

والمنتدى قايم لتبادل الخبرات

فجزا الله خير من قاموا عليه ووصلوه لهذا المستوى

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

برنامج أبو اليسر ناجح 100% وأنصح الشباب بتجريبة

أخو ي الحامد كودك ممتاز لكنه يجيب التاريخ الحالي فقط

ويعطيكم ألف عافية

مع خالص تحياتي

#10
qaher كتب:
=============================

ويا أخ system Down

إذا ماعندك إفادة للشباب مافي داعي للتجريح

الناس خلقت لبعضها

إذا انتم كبار وخبراء وخلقتم متعلمين مافي داعي للاستحقار

احنا ماخلقنا متعلمين

لسه بنطلب العلم

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

و أين جرحتك ؟

لم أقل شيئاً حتى قريب من التحقير.

دلني على النقطة التي أزعجتك و إذا كنت على حق فسأعتذر.

#11

المشكلة انحلت لكن بنسبة 95%

اليوم ظهرت لي ال5% الجديدة

أخ ابو اليسر الكلام موجه لك خاصة

المشكلة هي ان التقويم غير متوافق مع أم القرى

مثلا:

نجد ان في تقويم ام القرى

يوم الخميس القادم يوافق 30 ربيع الثاني يساويه بالميلادي 17 مايو

لكن نجد ان في البرنامج

يوم الخميس القادم يوافق 1 جماد الأول ويساويه بالميلادي 17 مايو

هل من تعديل في البرنامج بحيث نخليه يوافق أم القرى

البرنامج بعد التعديلات الأخيرة في الملف المرفق

Calender.zip

تم تعديل هذه المشاركة بواسطة qaher في 13 مايو 2007 في 02:38

#12

حصلت الحل :lol:

غيروا نوع التقويم في كلاس الجنرال

من

HijriCalendar

إلى

UmAlQuraCalendar

في كل الفنكشين الأثنين

تحياتي وتمنياتي لكم بالتوفيق

#13

تحياتي للجميع

انا عندي فكره بسيطة على قدي اود ان اعرضها على الجميع لعلها ان تعم الفائدة لكم او لي اذا كان هناك انتقاد ايجابي

كلنا يعلم ان التقويم الميلادي ثابت فيمكن ان اعطيك تاريخ قبل 1000 سنة او بعد الف سنة حسابيا

- معلومة خاصة للحبايب ترى اكتشفو ان دوران الارض حول نفسها يزيد كل سنة ربع يوم لذلك قالو ان هناك سنة كبيسة كل 4 سنين وازيدكم من الشعر بيت قالو ان دوران الارض غير ثابت وحسب ما افتكر اذا ماخانتني الذاكرة ان دوران الارض حول نفسها يقل بسبب ظروف فلكية لا حاجة لذكرها ولكن مشي حالك وناخد التاريخ المعتمد -

عموما نرجع لموضوعنا ...... التاريخ الميلادي اكثر مصداقية من ناحية الزمن لانه يعتمد على دوران الشمس اما التاريخ الهجري فيختلف لانه بدوران القمر حول الارض فبالتالي لايمكن لأي تقومي الكتروني ان يعطي نتيجة صحيحة 100% فالخطا وارد حتى في تقويم ام القرى لذلك مايكروسوفت قامو بعمل شي اسمه تضبيط التاريخ الهجري في لوحة التحكم في الاقليميات. فبالتالي نقول ان التاريخ الهجري لايمكن ان يتوافق مع التاريخ الواقعي بنسبة 100% ابدا وبالتالي كل جهاز يجب ان تتم معايرته في حال اختلف التقويم الالكتروني عن التقويم الواقعي.

ولحل هذه المشكلة .. اقوم انا شخصيا بالاتي:

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

مثال لادخال تاريخ في قاعدة البيانات

الحقل 1 = التاريخ

الحقل 2 = نوع التاريخ 1= ميلادي , 0 = هجري

لكي ندخل التاريخ 13 - 5- 2007 يكون كالاتي الحقل 1 = 13-05-2007 , الحقل 2 = 1

لكي ادخل التاريخ 26-04-1428 يكون كالاتي الحقل 1 = 13-05-2007 , الحقل 2 = 0

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

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

فلو قلنا ان المستخدم اعادة معايرة النظام وقام بتأخير الهجري بيوم. ففي هذه الحالة عند استرجاع القيمة الهجرية من قاعدة البيانات ستتاثر بالمعايرة الاخيره فستظهر النتيجة 25-04-1428 وليس كما ادخلت وهي 26-04-1428

اسف للاطالة ولكن اتمنى ان اكون استوفيت الطريقة اللتي ابتعها من جميع جوانبها

وايضا ارفقت ملف دي ال ال يقوم بالتحويل من هجري لميلادي بالاضافة الى بعض الدوال المساندة او التي قد يحتاج لها للتعامل مع التواريخ

تم تعديل هذه المشاركة بواسطة Romantic_touch في 13 مايو 2007 في 12:31

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#14

عزيزي اذا كنت تعتمد إعتماد كلي على أم القرى

فهم يوفرون لك جدول كامل إلى عام 1500 يعني تقدر تجيب البيانات بشكل دقيق جداً

نصيحه لك بدل الاعتماد على الداتا بيز يفضل لك عمل كنترول صغيرة مثلي تماماً

انا قمت بعمل كنترول تخدمني شخصياً

بعد فترة بإذن الله سأقوم بإهدائها للفريق العربي للبرمجة

لكن لسه تنقصها بعض الدوال

رســالـة من يتيــم

AytamResalhGIFmesg.gif

http://www.aytam.org.sa/message_aytam.php

----

أتمنى لك التوفيق اخي cold0zero في موقعك

logo.gif
#15

شكرا لك أخي Romantic على هذه المعلومات القيمة

وهذا وان دل فانما يدل على صحة قولي " انك تعمل دالة بنفسك وتريح بالك مثل الشباب " واللي أشكر الاستاذ System Down بالرد علي فيه بقوله ان شركة مايكروسوفت حلت المشكلة ..

نعم قد حلت جزء كبير منها باستخدام UmAlQuraCalendar ولكن مازالت هناك أخطاء تحدث ، وهذا ما كنت أقصده ، وليس قصدي في اتهام شركة مايكروسوفت وهي غنية عن التعريف .. وليس أنا من يستطيع اصلا الحكم عليها ..

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

احتراماتي لجميع المشاركين ..

#16

بعيد عن الضوضاء بخصوص التقويم ام القرى والهجري نرجع ونقول

هل تقويم ام القرى هو صحيح 100%؟

طبعا الجواب قطعا لا ولكنه المعتمد داخل السعودية اما من ينظر لبرامج عالمية فتقويم ام القرى لايغني ولايسمن من جوع

ولكل واحد طريقته :)

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#17

تبغون الصراحة

حتى لو ام القرى خطأ

لكن هو الأضمن في استعماله خاصة في السعودية

تحياتي

#18

وين الخطأ؟..

أنا حملت المشروع اللي حطيت وغيرت التقويم إلى أم القرى وماشي مضبوط بدون تغيير أي شيء آخر على النحو الآتي:

Dim Ar As Globalization.CultureInfo = New Globalization.CultureInfo("ar-sa")

System.Threading.Thread.CurrentThread.CurrentCulture = Ar

Ar.DateTimeFormat.Calendar = New Globalization.GregorianCalendar

GregorianToUmm = New DateTime(Year, Month, Day, Ar.DateTimeFormat.Calendar)

Ar.DateTimeFormat.Calendar = New Globalization.UmAlQuraCalendar()

ومن المعروف أن تقويم أم القرى يدعم إلى نهاية 1450 هـ وهو ما استطاعت شركة مايكروسوفت الحصول عليه من مدينة الملك عبدالعزيز.

بالطبع هذا إذا كان فهمي لكلامك صحيح.

وعلى فكرة مدري وش أقول لك.. لكن اعتبر عندك تقويمين الأول هجري والثاني أم القرى.

وأنا معك إنها شغلة تجيب الضغط... واللي أعرف إن إس كيو إل 2005 تستطيع إنك تخليه يقبل تاريخ أم القرى بس ما أدري كيف بالضبط.. وأعتقد إنها عن طريق إنشاء نوع جديد وهو مايسمى بـ UDT

تم تعديل هذه المشاركة بواسطة Almatrodi في 18 مايو 2007 في 09:07

#19

هناك جدل كبير حول صحة تقويم أم القرى و لكنه يبقى (حتى الآن) التقويم الرسمي للسعودية لذا فأهميته كبيرة جداً.

#20

اليوم تاريخ 1/5/1428 وتقويم ام القرى يقول 2/5/1428

انا موظف في إحدى الوزاراة الحكومية ومن نظرتي للمعاملات الصادرة والواردة

فـ جميع المعاملات من قبل جميع الجهات الحكومية وحتى الجهات الأهلية تأتينا بحسب تاريخ ام القرى

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

رســالـة من يتيــم

AytamResalhGIFmesg.gif

http://www.aytam.org.sa/message_aytam.php

----

أتمنى لك التوفيق اخي cold0zero في موقعك

logo.gif
#21

لاتنسوا ياجماعة ان تقويم ام القرى افتراضي ..

لانه لدينا أشهر لا يمكن تكهن عدد ايامها مثل رمضان وشعبان ،، بعكس التاريخ الميلادي فهو ثابت

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…