المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: حل مشكلت التاريخ الهجريHijri Date Solution
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات قواعد البيانات > منتدى مبرمجي Microsoft SQL Server > أرشيف قسم SQL Server
server_programmer
السلام عليكم و رحمة الله و بركاتة

أخوان المبرمجين أعزكم الله



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

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

بالنسبة للتاريخ الهجري

طبعا الحاسب يتعامل مع التاريخ الميلادي فقط و التاريخ الهجري ناتج عن عملية حسابية غاية في التعقيد و للأسف الحاسب لا يعترف بالحسابات الهجرية ( جربوا و شوفوا على التاريخ 30 /2/ لأي سنة)

الفكرة ( لمبرمجي الفيجول بيسك بكل أصداراتة + VBA )

- تعمل حقل نصي لكل حقل تاريخ
فرضا لو معاك حقل أسمة Birth_Date ونوعه DateTime أضف لجانبة حقل نصي أسمة Birth_Date_HIJ

-لما يسجل المستخدم التاريخ الهجري في شاشة الأدخال يتم تحويل هذا التاريخ لميلادي في متغير

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

- القيمة الي حطها المستخدم ( الهجرية ) تتسجل في الحقل النصي الي سويتة من شوية

عملية التحويل لها ثلاث دوال انا بفضل الله عملتها و نجحت بنسبة 100 %

فأن لكل حقل تاريخ حقل بجانبة نصي لحفظ التاريخ بشكل هجري

طبعا المستخدم من شاشات الادخال سيسجل تاريخ هجري

وعليكم أن تحولوا التاريخ المسجل لتاريخ ميلادي

ثم يحفظ التاريخ الميلادي الناتج في الحقل الي من النوع تاريخ و التاريخ الهجري في الحقل النصي

بالنسبة للأستعلام

العملية كالتالي

المستخدم سيسجل تاريخ هجري

و الدوال تحدد التاريخ المناسب بعد تحويلة لتاريخ ميلادي

ثم تستعلم عن طريق هذة القيم

و الحقول الناتجة من الأستعلام خلي الحقول النصية (الي تم تسجيل التاريخ الهجري فيها ) هي التي تظهر للمستخدم

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

و الدوال الي صممتها لهذة العملية هي كالتالي

-ToGregorianDate
و تستقبل تاريخ هجري و تحولة لتاريخ ميلادي

-ToHijriDate

و تستقبل تاريخ ميلادي و تحولة لتاريخ هجري

-ConvertDate
هذة الدالة الأساسية للدالتين السابقتين

و هي دالة التحويل نفسها

ضع الدوال السابقة في ملف Module و جرب

--------------------------------------------------الدوال -----------------------------------

Private Function ConvertDate(ByRef StringIn As String, ByRef OldCalender As Integer, ByVal NewCalender As Integer, ByRef NewFormat As String) As String

Dim SavedCal As Integer
Dim D As Date, s As String
SavedCal = Calendar
Calendar = OldCalender
D = CDate(StringIn)
Calendar = NewCalender
s = CStr(D)
ConvertDate = Format(s, NewFormat)
Calendar = SavedCal
End Function

Public Function ToHijriDate(ByVal GregorianDate As String) As String
Dim HijriDate As String, DateFormat As String
' DateFormat = "long date"
DateFormat = "dd/mm/yyyy"
HijriDate = ConvertDate(GregorianDate, vbCalGreg, vbCalHijri, DateFormat)
ToHijriDate = HijriDate
End Function

Public Function ToGregorianDate(ByVal HijriDate As String) As String
Dim GregorianDate As String, DateFormat As String
DateFormat = "dd/mm/yyyy"
GregorianDate = ConvertDate(HijriDate, vbCalHijri, vbCalGreg, DateFormat)
ToGregorianDate = GregorianDate
End Function


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

أظن الفكرة واضحة

و هي ممتاز - من وجهة نظري - لعقدة التاريخ الهجري


[COLOR=red]
و أرجو من المشرفين نقل المقالة لأهم المواضيع لأنها حل مباشر و سيفيد كل الي يتعاملو من الفيجول بيسك مع أي نوع من أنواع قواعد البيانات


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

و سلامتكم
mn_902
بارك الله فيك

والان سوف اعمل البرنامج ب VB.Net

تحياتي
server_programmer
وفيك شكرا
seahmad
تحويل الدوال إلى vb.net
السلام عليكم
طلب بسيط وهو تحويل دوال vb إلى vb.net
مشكور أخي الكريم
أبو زكريا2
طريقة تحويل التاريخ
أعضاء المنتدى
السلام عليكم ورحمة الله وبركاته وبعد
لقد سببت لي مشكلة تحويل التاريخ إلى تاريخ هجري صداعا كما فعلت بأخينا
ووجدت الحل أقرب من شراك نعلي ، وهذا الأمر يقوم بعرض التاريخ الحالي إلى تاريخ هجري وإليكم هذا الأمر :
في أحد نماذج فيجوال بيسك ولنفترض النموذج الأساسي مثلا نكتب العبارة التالي :
Calendar=vbCalHijri
ولكن المشكلة التي وجهتني بعد ذلك كيف أحول تاريخاً ميلاديا مسجلا (كتاريخ) إلى تاريخ هجري
لا أدري هل الطريقة التي ذكرها أخونا تحل المشكلة أم لا ؟
تقبلوا تحياتي
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2008 Invision Power Services, Inc.