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

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

الصفحات: 1 2 3


RE: حساب العمر - ابراهيم ايبو - 27-07-19

السلام عليكم اخي الكريم

هل تقصد ادخال تاريخ الميلاد بالهجري ثم حساب العمر كم سنة هجري؟
ام  ادخال تاريخ الميلاد بالهجري ثم حساب العمر بالميلادي؟
ام ادخال ميلادي وحساب ميلادي ثم التحويل مايعادل بالسنين الهجرية؟



RE: حساب العمر - سعيد المهر - 27-07-19

(27-07-19, 01:11 PM)ابراهيم ايبو كتب :
السلام عليكم اخي الكريم

هل تقصد ادخال تاريخ الميلاد بالهجري ثم حساب العمر كم سنة هجري؟
ام  ادخال تاريخ الميلاد بالهجري ثم حساب العمر بالميلادي؟
ام ادخال ميلادي وحساب ميلادي ثم التحويل مايعادل بالسنين الهجرية؟
وعليكم السلام اخي العزيز
اريد ادخال تاريخ الميلاد بالهجري واحتساب العمر بالهجري


RE: حساب العمر - ابراهيم ايبو - 27-07-19

السلام عليكم اخي سعيد
تفضل واحسب عمرك بالتاريخ الهجري



RE: حساب العمر - سعيد المهر - 27-07-19

(27-07-19, 06:26 PM)ابراهيم ايبو كتب :
السلام عليكم اخي سعيد
تفضل واحسب عمرك بالتاريخ الهجري
الشكر الجزيل والعرفان لك تم استلام المرفق وإضافةبعض المسات الخفيفة عسى ان تعجبك 
[attachment=22222]


RE: حساب العمر - ابراهيم ايبو - 27-07-19

الحمد لله والشكر لله
ولك اخي الكريم
كنت اتمنى اشاهد تعديلاتك على الفورم 
لكن عندي Visual Studio 2010



RE: حساب العمر - سعيد المهر - 28-07-19

(27-07-19, 10:52 PM)ابراهيم ايبو كتب :
الحمد لله والشكر لله
ولك اخي الكريم
كنت اتمنى اشاهد تعديلاتك على الفورم 
لكن عندي Visual Studio 2010

هذا البرنامج على Visual Studio 2010

[attachment=22229]


RE: حساب العمر - سعيد المهر - 18-08-19

(19-07-19, 12:51 AM)ابراهيم ايبو كتب :
اخي البرنامج شغال وليس فيه اي مشكلة
واعدت تنزيله من المرفقات وشغتله كالمعتاد
حتى اتأكد من المرفقات
وهذه صورة بزمن التشغيل
السلام عليكم 
لو اردت التحكم في تاريخ اليوم بمعنى ان اقوم بتغييره يدوية بدل ظهوره بشكل آلي

كيف يتم تغيير الكود الخاص بذلك


RE: حساب العمر - ابراهيم ايبو - 18-08-19

السلام عليكم
تفضل اخي
كود :
   Dim HijriDTF As New System.Globalization.CultureInfo("ar-SA", False)
   Dim newDays As DateTime = DateTime.Now.ToString("dd MM yyyy", HijriDTF)


   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       'Txt_DaysA.Text = DateTime.Now.ToString("dd", HijriDTF)
       'TxtMonthsA.Text = DateTime.Now.ToString("MM", HijriDTF)
       'Txt_YearsA.Text = DateTime.Now.ToString("yyyy", HijriDTF)
       
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim Birtday As Date = CDate(Txt_BirtDay.Text & "/" & Txt_BirtManth.Text & "/" & Txt_BirtYear.Text)
       newDays As Date = CDate(Txt_DaysA.Text & "/" & TxtMonthsA.Text & "/" & Txt_YearsA.Text)
       Dim strall As String = (GetDateSpanText(Birtday, newDays))
       MsgBox(Birtday)
       Dim ff() = strall.Split("-")
       Txt_ResaulDay.Text = ff(2)
       Txt_ResaulMonth.Text = ff(1)
       Txt_ResaulYear.Text = ff(0)

   End Sub
   Public Function GetDateSpanText(ByVal fromDate As DateTime, Optional ByVal toDate As DateTime = Nothing) As String
       Try

           Dim years As Integer = 0, months As Integer = 0, days As Integer = 0
           If toDate = Nothing Then toDate = DateTime.Now

           Do Until toDate.AddYears(-1) < fromDate
               years += 1
               toDate = toDate.AddYears(-1)
           Loop

           Do Until toDate.AddMonths(-1) < fromDate
               months += 1
               toDate = toDate.AddMonths(-1)
           Loop

           Do Until toDate.AddDays(-1) < fromDate
               days += 1
               toDate = toDate.AddDays(-1)
           Loop

           Return (years & " Years " & "-" & months & " Months " & "-" & days & " Days ")
       Catch ex As Exception
           Return "Error"
       End Try
   End Function
اخي فاتتنا نقطة جدا هامة وهي ان الحساب الهجري ينقص عن الميلادي 11 يوم في السنة والبرنامج يحسب الغمر والفرق بالهجري
لذا من الواجب اضافة هذه الايام الى الناتج حتى يصبح حساب العمر حقيقيا بامكانك اضافتها في الحساب


RE: حساب العمر - ابراهيم ايبو - 19-08-19

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

هذا كود البوتون احسب

كود :
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim Birtday As Date = CDate(Txt_BirtDay.Text & "/" & Txt_BirtManth.Text & "/" & Txt_BirtYear.Text)
       Dim strall As String = (GetDateSpanText(Birtday, datNow))
       MsgBox(Birtday)

       Dim ff() As String = strall.Split("-")
       Txt_ResaulDay.Text = ff(2)
       Txt_ResaulMonth.Text = ff(1)
       Txt_ResaulYear.Text = ff(0)

       Dim kk As Integer = Val(Txt_ResaulYear.Text)
       Dim totDays As Integer = (Convert.ToInt64(kk)) * 11
       Dim yy As Double = (CDbl(totDays \ 365.25)).ToString ' عدد السنين
       Dim MM As Double = (CDbl((totDays - (yy * 365.25)) \ 30.5)).ToString  ' عدد الاشهر
       Dim dd As Double = (CDbl((totDays - (yy * 365.25)) - (MM * 3.5))).ToString
       If yy >= 1 Then
           Txt_ResaulYear.Text = Val(ff(0)) - (yy + 1)
       Else
           Txt_ResaulYear.Text = Val(ff(0)) - 1
       End If
       If MM >= 1 And MM <= 12 Then
           If (Val(ff(1)) - MM) < 0 Then
               Txt_ResaulMonth.Text = 12 + Val(Val(ff(1)) - MM)
           End If
       ElseIf MM = 0 Then
           Txt_ResaulMonth.Text = 11

       Else
           Txt_ResaulMonth.Text = Val(ff(1))
       End If
       If dd >= 1 And dd <= 30.5 Then
           If (Val(ff(2)) - dd) < 0 Then
               Txt_ResaulDay.Text = 30.5 + Val(Val(ff(2)) - dd)
           End If

       Else
           Txt_ResaulDay.Text = Val(ff(2))
       End If
   End Sub