الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مطلوب مساعدة لشرح أكود تحسب عمر الشخص !

مغلق
بدأه ابن مسقط في 22 يونيو 2002 · 7 رد · 618 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الكرام

السلام عليكم ورحمة الله

في البداية أود أن أعتذر من أنه لم يكن ينبغي أن أفتح موضوع جديد لسؤالي ، لأن بالإمكان دمجه في موضوع الوصلة التاليه التي تتعلق بــ "حساب العمر" ، إلا أنه لم أتمكن من ذلك لوجود خلل فني في الصفحة المشار إليها أدناه لم يمكني من إدراجه : (فهل يمكن للأخوة المشرفين دمج الموضع)

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)

ibnmusqat.gif
#2

الأخوة / الكرام

السلام عليكم ورحمة الله

وفقني الله بعمل مثال للكود الأول المذكور أعلاه بعد أن قمت بإجراء تعديل طفيف عليه.

حيث وضعته في حدث بعد التحديث للحقل (تاريخ_الميلاد) وبذلك أصبح حقل (العمر) يحسب عمر الشخص تلقائياً :

العمر = DateDiff("yyyy", [تاريخ_الميلاد], Now()) + _
            Int(Format(Now(), "mmdd") < Format([تاريخ_الميلاد], "mmdd"))

والمثال يمكن إنزاله من هنا.

هل توجد ملاحظات إو إضافات عليه ؟

أما بخصوص الكود الثاني والثالث أتركهم لمن هم أعلى مني في الخبرة لترجمتهم ووضعهم في مثال لكي يمكن الإستفادة منهم.

ibnmusqat.gif
#3

الأخوة الكرام

هل من مجيب ؟ :(

ibnmusqat.gif
#4

هذا مثال اخر لحساب العمر

في حقل العمر وليكن اسم الحقل age1

Private Sub age1_Enter()

age1 = DateDiff("y", date_melad, dat1) / 365

End Sub

حيث ان date_melad هو تاريخ ميلاد الموظف المدخل من قبل المستخدم وdate1 هو اسم الحقل لتاريخ اليوم مع ملاحظة عدد ايام السنه في التاريخ الهجري او الميلادي

وشكرا

ليه العطر وانتي انفاسك دخــــون وليه الكحل وانتي ماغيرك عيون

sun-alwadi@hotmail.com

#5

الأخ/ شمس الوادي

أين كنت طوال هذه المده ، طولت الغيبه علينا والحمدالله على سلامتك.

قمت بتجربة الكود ويبدو أن فيه خطأ ، حيث عندما يكون تاريخ ميلاد شخص 1/1 1968 يظهر عمره = - 68

أو شخص تاريخ ميلاده 1/1/2002 يظهر عمره = - 102

ibnmusqat.gif
#6

مرحبا ابن مسقط والله يسلمك

الكود يعمل جيد بس تاكد من حقل التاريخ او اجعل date1 قبل date_melad

وشكرا

ليه العطر وانتي انفاسك دخــــون وليه الكحل وانتي ماغيرك عيون

sun-alwadi@hotmail.com

#7

وضع الاخ حارث وصلة للمثال فى الموضوع الاصلي

http://www.pcpages.com/harith77/agehdy.zip

#8

الأخوان/ محمد طاهر وحارث

بارك الله فيكما وزاد من حسناتكما. (f)

ibnmusqat.gif

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…