11-10-16, 11:28 AM
اعجبني سرد الاخ ممدوح في التوضيح لك ، لذلك من المحاذير التي افرضها على نفسي و برامجي هي عدم حفظ اي تاريخ هجري بقاعدة البيانات (ولو على جثتي) هههههههه السبب نسبة الخطأ فيها كبيره و تسبب وجع اكبر بالمعالجه لاحقاً لذلك ماذا تفعل في هذه الحالة : اولاً اجعل جميع الكواليس في البرنامج تتعامل مع التاريخ الميلادي في العمليات الحسابيه في الحفظ في المعالجة ، و اعرض للمستخدم حسب رغبته اما بتاريخ ام القرى ام بالميلادي فقط عملية تحويل لا اكثر و لا اقل ، لكن اساس التاريخ يكون ميلادي ، اما اذا اردت اجراء بعض العمليات على التقويم الميلادي فما عليك الا تحويل التاريخ الى تقويم ام القرى ثم اجراء بعض الحسابات مثل عدد الايام في الشهر ، عدد ايام السنة ، كم متبقي في السنة الحالية ، عينة من بعض الاكواد التي كتبتها سابقا :
كود :
''' <summary>
''' جلب عدد الايام بداية السنة الى التاريخ المحدد(أم القرى)
''' </summary>
''' <param name="TheDayInYear">التاريخ المحدد</param>
''' <returns>رقمي</returns>
''' <remarks>عدد الايام</remarks>
Public Function howManyDaysFromStartYearUmAlQura(ByVal TheDayInYear As DateTime) As Integer
Dim umq As System.Globalization.UmAlQuraCalendar = New System.Globalization.UmAlQuraCalendar
Dim FirstDateOfYear As New DateTime(umq.GetYear(TheDayInYear), 1, 1, umq)
Dim daysFromStartYear = (New DateTime(TheDayInYear.Year, TheDayInYear.Month, TheDayInYear.Day) - FirstDateOfYear).TotalDays
If daysFromStartYear > 0 Then daysFromStartYear += 1
Return daysFromStartYear
End Function
''' <summary>
''' عدد الايام في الاشهر الهجرية
''' </summary>
''' <param name="Par_Year"></param>
''' <param name="Par_Month"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function howManyDaysInMonthUmAlQura(ByVal Par_Year As Integer, ByVal Par_Month As Byte) As Integer
Dim umq As System.Globalization.UmAlQuraCalendar = New System.Globalization.UmAlQuraCalendar
Return umq.GetDaysInMonth(Par_Year, Par_Month)
End Function
''' <summary>
''' عدد الايام في الاشهر الهجرية
''' </summary>
''' <param name="Par_date"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function howManyDaysInMonthUmAlQura(ByVal Par_date As Date) As Integer
Dim umq As System.Globalization.UmAlQuraCalendar = New System.Globalization.UmAlQuraCalendar
Return umq.GetDaysInMonth(umq.GetYear(Par_date), umq.GetMonth(Par_date))
End Function
Public Function GetStartDateInMonthUmAlQura(ByVal Par_Year As Integer, ByVal Par_Month As Byte) As DateTime
Dim umq As System.Globalization.UmAlQuraCalendar = New System.Globalization.UmAlQuraCalendar
Dim firstDayOfMonth = New DateTime(Par_Year, Par_Month, 1, umq)
Return firstDayOfMonth
End Function
Public Function GetLastDateInMonthUmAlQura(ByVal Par_Year As Integer, ByVal Par_Month As Byte) As DateTime
Dim umq As System.Globalization.UmAlQuraCalendar = New System.Globalization.UmAlQuraCalendar
Dim lastDayOfMonth = New DateTime(Par_Year, Par_Month, umq.GetDaysInMonth(Par_Year, Par_Month), umq)
Return lastDayOfMonth
End Function
اسم معرفي : محمد يحيى
