المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سؤال للمحترفين في البرمجة ضروري جداً



dilphen_blue
04-10-2004, 09:05 AM
قرأت في احد المواقع عن طريقة برمجة تحويل التاريخ من هجري إلى ميلادي والعكس وكن اني لست محترف برمجة فأن اتمنى من محترفين سؤال بسيط وهو / هل استطيع عمل ذلك في برنامج اكسل ؟ ارجوا التوضيح

هذا هو نص الموضع الذي قرأت ؟
كثيراً ما نقوم نحن العرب بتصميم برنامج ونحتاج لعرض التاريخ الهجري به بدلاً من الميلادي، وخاصة إذا كان البرنامج يوزع بدول الخليج العربي المستخدمة لهذا النوع من التقويم.

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

معادلة التحويل هي: التاريخ الميلادي = التاريخ الهجري * 0.970227 + 621.5774 ، مع ملاحظة أن الإختبار ليس في تطبيق هذه المعادلة ولكن عن طريق تحويل التاريخ بالأشهر والأيام والسنة الميلادية إلى اليوم والشهر والسنة الهجرية.

إذا كنت قليل الهمة، وتفضل السهل فها هو إجراء بسيط يمكنك تطبيقه على فيجول بيسك 6 يقوم بتحويل التاريخ الميلادي إلى هجري باليوم والشهر والسنة:

Function ConvertDateString(ByRef StringIn As String) As String
Dim SavedCal As Integer
Dim d As Date
Dim s As String
SavedCal = Calendar
VBA.Calendar = 0
d = CDate(StringIn)
VBA.Calendar = 1
s = CStr(d)
ConvertDateString = Format(s, "Long Date")
VBA.Calendar = SavedCal
End Function

إذا أردت تحويل التاريخ 25/5/2000 إلى مقابلة الهجري فقم بإستدعاء الإجراء كما يلي، حيث ستكون قيمة المتغير HijriDate هي الممثلة للتاريخ الهجري الناتج من التحويل.

HijriDate = ConvertDateString("25/5/2000")