01-11-16, 11:44 PM
السلام عليكم ،،
هذا كود كتبته قبل فتره طويله و لا اعلم هل نتائجه مضمونه 100% دائما او لا ،، لكنه يفي بالغرض ، على العموم الـ function تسمح لك بالحساب الميلادي و الهجري فقط قم بتحديد نوع الكاليندر أما ميلادي أو أم القرى و الكود مشروح ، لا اعتقد انه سيكون صعب عليك فهمه :
و اذا احد من الاخوه لديه تعديل أو ملاحظه أو تحسين لعملية الحساب أن يضعه هنا
هذا كود كتبته قبل فتره طويله و لا اعلم هل نتائجه مضمونه 100% دائما او لا ،، لكنه يفي بالغرض ، على العموم الـ function تسمح لك بالحساب الميلادي و الهجري فقط قم بتحديد نوع الكاليندر أما ميلادي أو أم القرى و الكود مشروح ، لا اعتقد انه سيكون صعب عليك فهمه :
كود :
''' <summary>
''' نوع الكاليندر المستخدم في الحساب
''' </summary>
''' <remarks></remarks>
Enum CalenderType
Gregorian = 1
UmAlQura = 0
End Enum
''' <summary>
''' حساب العمر
''' </summary>
''' <param name="birthdate">تاريخ الميلاد</param>
''' <param name="oCalenderType">حساب العمر بالهجري او الميلادي</param>
''' <param name="onlyReturnYear">ارجاع فقط السنة</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function calculateAge(ByVal birthdate As DateTime, Optional ByVal oCalenderType As CalenderType = CalenderType.Gregorian, Optional ByVal onlyReturnYear As Boolean = True, Optional ByVal showFullTextAsEn As Boolean = False) As String
Dim cultureCalendar As Object
If oCalenderType = CalenderType.Gregorian Then
cultureCalendar = New System.Globalization.UmAlQuraCalendar
Else
cultureCalendar = New System.Globalization.GregorianCalendar
End If
Dim birthDay As Integer = 0
Dim birthMonth As Integer = 0
Dim birthYear As Integer = 0
birthDay = cultureCalendar.GetDayOfMonth(Now) - cultureCalendar.GetDayOfMonth(birthdate)
birthMonth = cultureCalendar.GetMonth(Now) - cultureCalendar.GetMonth(birthdate)
birthYear = cultureCalendar.GetYear(Now) - cultureCalendar.GetYear(birthdate)
If birthDay < 0 Then
birthDay = 30 + birthDay
birthMonth = birthMonth - 1
End If
If birthMonth < 0 Then
birthMonth = birthMonth + 12
birthYear = birthYear - 1
End If
Dim birthFull As String = ""
If onlyReturnYear = True Then
birthFull = birthYear.ToString
Else
If showFullTextAsEn = True Then
birthFull = String.Format("{0} years , {1} months , {2} days", birthYear.ToString, birthMonth.ToString, birthDay.ToString) ' (birthDay.ToString + "/" + birthMonth.ToString + "/" + )
Else
birthFull = String.Format("{0} سنة و {1} أشهر و {2} أيام.", birthYear.ToString, birthMonth.ToString, birthDay.ToString) ' (birthDay.ToString + "/" + birthMonth.ToString + "/" + )
End If
End If
Return birthFull
End Functionو اذا احد من الاخوه لديه تعديل أو ملاحظه أو تحسين لعملية الحساب أن يضعه هنا
اسم معرفي : محمد يحيى
