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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم مكتبة اكواد VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=185)
+--- الموضوع : مطلوب كود حساب العمر بالسنة والشهر واليوم (/showthread.php?tid=17877)



مطلوب كود حساب العمر بالسنة والشهر واليوم - HA93 - 01-11-16

السلام عليكم ورحمه الله وبركاته..

احتاج مساعدة في ايجاد كود يحسب العمر بالسنة والشهر واليوم (يكون بالتاريخ الهجري)

اتمنى تفيدوني  Heart



RE: مطلوب كود حساب العمر بالسنة والشهر واليوم - myalsailamy - 01-11-16

السلام عليكم  ،،  

هذا كود كتبته قبل فتره  طويله و لا اعلم هل نتائجه مضمونه  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



و اذا احد من الاخوه لديه  تعديل  أو  ملاحظه أو تحسين لعملية الحساب أن يضعه  هنا


RE: مطلوب كود حساب العمر بالسنة والشهر واليوم - جميل علي - 02-11-16

http://vb4arb.com/vb/thread-15381.html


RE: مطلوب كود حساب العمر بالسنة والشهر واليوم - HA93 - 02-11-16

myalsailamy
جميل علي

شكراا لكم جزاكم الله خير


RE: مطلوب كود حساب العمر بالسنة والشهر واليوم - أبو عمر - 02-11-16

لا اعلم ان كانت تجربتي فاشلة ام لسوء حظ
فالتاريخ الهجري لا يكون دقيقا في مثل هذه الاحوال
PHP كود :
Dim dob As DateTime
      dob 
= New DateTime(DateTimePicker1.Value.YearDateTimePicker1.Value.Month,           DateTimePicker1.Value.Day)
       
Dim tday As TimeSpan DateTime.Now.Subtract(dob)
       
Dim years As Integermonths As Integerdays As Integer
       months 
12 * (DateTime.Now.Year dob.Year) + (DateTime.Now.Month dob.Month)
 
       If 
DateTime.Now.Day dob.Day Then
           months 
-= 1
           days 
DateTime.DaysInMonth(dob.Yeardob.Month) - dob.Day DateTime.Now.Day
       
Else
           
days DateTime.Now.Day dob.Day
       End 
If
       
years Math.Floor(months 12)
       
months -= years 12
       MsgBox
("Your age as on " Format(Now"dd-MMM-yyyy") & vbCrLf years " Years, " months " Months and " days " Days"
وحتى في الميلادي فالامر يحتاج للانتباه للسنوات الكبيسة


RE: مطلوب كود حساب العمر بالسنة والشهر واليوم - IBRA939 - 13-04-17

شكراا لكم جزاكم الله خير