تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مطلوب كود حساب العمر بالسنة والشهر واليوم
#1
السلام عليكم ورحمه الله وبركاته..

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

اتمنى تفيدوني  Heart
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم  ،،  

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



و اذا احد من الاخوه لديه  تعديل  أو  ملاحظه أو تحسين لعملية الحساب أن يضعه  هنا
اسم معرفي : محمد يحيى
الرد }}}}
تم الشكر بواسطة:
#3
http://vb4arb.com/vb/thread-15381.html
أساتذتي الكرام
Heart أبوعمر/ سعود/ممدوح الخطيب Heart
شكرا لكم
الرد }}}}
تم الشكر بواسطة:
#4
myalsailamy
جميل علي

شكراا لكم جزاكم الله خير
الرد }}}}
تم الشكر بواسطة:
#5
لا اعلم ان كانت تجربتي فاشلة ام لسوء حظ
فالتاريخ الهجري لا يكون دقيقا في مثل هذه الاحوال
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"
وحتى في الميلادي فالامر يحتاج للانتباه للسنوات الكبيسة
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 رَبِّ اغْفِرْ لِي وَلِوَالِدَيَّ
Heart
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Wink [كود] تحويل العمر الى تاريخ ميلاد سعود 0 243 21-07-16, 12:49 AM
آخر رد: سعود
Information [كود] مطلوب كود لجعل التكست بوكس يكتب عربي فقط Mostafa Yousry 2 517 07-12-15, 05:53 AM
آخر رد: Mostafa Yousry

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم