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

ايه الخطأ فى هذا الكود لحساب العمر

مغلق
بدأه mourad3d في 15 يناير 2005 · 5 رد · 685 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ايه الخطأ فى هذا الكود لحساب العمر ؟؟؟؟؟؟؟؟؟؟؟؟؟

Public Function ymdnow(dt1 As Date, dt2 As Data) As String

Dim d1 As Long, d2 As Long

Dim m1 As Long, m2 As Long

Dim y1 As Long, y2 As Long

d1 = Day(dt1)

m1 = Month(dt1)

y1 = Year(dt1)

d2 = Day(dt2)

m2 = Month(dt2)

y2 = Year(dt2)

If d1 > d2 Then

d2 = d2 + 30

m2 = m2 - 1

End If

If m1 > m2 Then

m2 = m2 + 12

y2 = y2 - 1

End If

d = d2 - 1

m = m2 - m1

y = y2 - y1

ymdnow = y & "year" & m & "month" & d & "days"

End Function

Private Sub Form_Load()

Label1 = "the difference between 11-11-97 to 2004-12-22 is :"

Text1.Text = ymdnow("11/11/1997", "5/5/2004")

End Sub

#2

وضعت الكود بشكل صحيح ليستطيع الجميع قراءته

Public Function ymdnow(dt1 As Date, dt2 As Data) As String
Dim d1 As Long, d2 As Long
Dim m1 As Long, m2 As Long
Dim y1 As Long, y2 As Long
d1 = Day(dt1)
m1 = Month(dt1)
y1 = Year(dt1)
d2 = Day(dt2)
m2 = Month(dt2)
y2 = Year(dt2)

If d1 > d2 Then
d2 = d2 + 30
m2 = m2 - 1
End If
If m1 > m2 Then
m2 = m2 + 12
y2 = y2 - 1
End If
d = d2 - 1
m = m2 - m1
y = y2 - y1

ymdnow = y & "year" & m & "month" & d & "days"

End Function

Private Sub Form_Load()
Label1 = "the difference between 11-11-97 to 2004-12-22 is :"
Text1.Text = ymdnow("11/11/1997", "5/5/2004")
End Sub
AlexCard.gif

Business Card

Ahmad Fathy Ahmad

Computer and Systems Department

Faculty of Engineering, Alexandria University

Cellular: +2 010 1461154

E-mail: midoalx@hotmail.com

ICQ: 148481391

#3

عزيزى

اسهل من الموضوع ده كله تستخدم الدالة

datediff

هى بتقوم بطرح تاريخين .. جربها و قولى ;)

AlexCard.gif

Business Card

Ahmad Fathy Ahmad

Computer and Systems Department

Faculty of Engineering, Alexandria University

Cellular: +2 010 1461154

E-mail: midoalx@hotmail.com

ICQ: 148481391

#4

للأفادة وجد الخطأ فى الكود ههوه خطأ كتبى بدلا من كتابة date كتبت data الان الكود يعمل بنجاح واردت ان اضع الكود مرة اخرى ليستفيد منه باقى اعضاء المنتدى

Public Function ymdnow(dt1 As Date, dt2 As Date) As String
Dim d1 As Long, d2 As Long
Dim m1 As Long, m2 As Long
Dim y1 As Long, y2 As Long
d1 = Day(dt1)
m1 = Month(dt1)
y1 = Year(dt1)
d2 = Day(dt2)
m2 = Month(dt2)
y2 = Year(dt2)

If d1 > d2 Then
d2 = d2 + 30
m2 = m2 - 1
End If
If m1 > m2 Then
m2 = m2 + 12
y2 = y2 - 1
End If
d = d2 - 1
m = m2 - m1
y = y2 - y1

ymdnow = y & "year" & m & "month" & d & "days"

End Function

Private Sub Form_Load()
Label1 = "the difference between 11-11-97 to 2004-12-22 is :"
Text1.Text = ymdnow("11/11/1997", "5/5/2004")
End Sub
#5

الحمد لله الذى هدانا لهذا وما كنا لنهتدى لولا أن هدانا الله

مبروك الحل

لا تغفل نصيحة الأخ أحمد فهى تعطيك النتيجة بكود أقل بكثير وأسهل بكثير

سطر واحد سيعطيك السنين أو الشهور أو الأيام

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#6

حقيقى انا استخدمت دالة datediff ولكن كان تحسب العمر بزيادة سنه وكنت بحسب على عمرى 1/10/1979 ووجدت انى الاصلح فى حساب العمر الكود الذى قمت باستخدمه لانه يحسب العمر مظبوط ولابزيادة سنه ولا اقل سنه

وهذا الكود الخاص بدالة datediff الذى استخدمه

Private Sub Command1_Click() 
    Dim d, m, y, d1, d2, tmp, Msg
    d2 = Format(Date, "dd/mm/yyyy")
    d1 = Format(InputBox("Enter your birthday"), "dd/mm/yyyy")
    If Not IsDate(d1) Then
        MsgBox "Invalid date entry, try again"
        Exit Sub
    End If
    If DateValue(d1) >= DateValue(d2) Then
        MsgBox "Invalid date entry, try again"
        Exit Sub
    End If
    y = DateDiff("yyyy", d1, d2)
    d1 = DateAdd("yyyy", y, d1)
    m = DateDiff("m", d1, d2)
    d1 = DateAdd("m", m, d1)
    d = DateDiff("d", d1, d2)
    Msg = "Year(s) = " & y & vbNewLine _
        & "Month(s) = " & m & vbNewLine _
        & "Day(s) = " & d
    MsgBox Msg
End Sub

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

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