الأخوة الكرام
السلام عليكم ورحمة الله
في البداية أود أن أعتذر من أنه لم يكن ينبغي أن أفتح موضوع جديد لسؤالي ، لأن بالإمكان دمجه في موضوع الوصلة التاليه التي تتعلق بــ "حساب العمر" ، إلا أنه لم أتمكن من ذلك لوجود خلل فني في الصفحة المشار إليها أدناه لم يمكني من إدراجه : (فهل يمكن للأخوة المشرفين دمج الموضع)
http://arabteam.nicmatic.com/vb/showthread...p?threadid=3719
وسؤالي كالأتي :-
وقعت عيني على أكواد جديدة تحسب عمر الشخص ونظراً لقلة خبرتي أعرضها عليكم للتكرم بشرح طريقة عملها ووضعها في مثال ان أمكن ذلك ليستفيد منها الجميع وهي كالأتي :
الكود الأول :
Age=DateDiff("yyyy", [Bdate], Now())+ _
Int( Format(now(), "mmdd") < Format( [Bdate], "mmdd") )التفاصيل :
Function Age(Bdate, DateToday) As Integer
' Returns the Age in years between 2 dates
' Doesn't handle negative date ranges i.e. Bdate > DateToday
If Month(DateToday) < Month(Bdate) Or (Month(DateToday) = _
Month(Bdate) And Day(DateToday) < Day(Bdate)) Then
Age = Year(DateToday) - Year(Bdate) - 1
Else
Age = Year(DateToday) - Year(Bdate)
End If
End Function
الكود الثاني :
Public Sub CalcAge(vDate1 As Date, vdate2 As Date, ByRef vYears As Integer,
ByRef vMonths As Integer, ByRef vDays As Integer)
' Comments : calculates the age in Years, Months and Days
' Parameters:
' vDate1 - D.O.B.
' vDate2 - Date to calculate age based on
' vYears - will hold the Years difference
' vMonths - will hold the Months difference
' vDays - will hold the Days difference
vMonths = DateDiff("m", vDate1, vdate2)
vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2)
If vDays < 0 Then
' wierd way that DateDiff works, fix it here
vMonths = vMonths - 1
vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2)
End If
vYears = vMonths 12 ' integer division
vMonths = vMonths Mod 12 ' only want leftover less than one year
End Subوالله الموفق. (f)

