منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : update العمر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم.بارك الله فيكم كيف يمكن أسوّي هذي الشغلة بعد اذنكم
انا عندي datetimepicker و ثلاثة تاكسات
لما اجي اسجل هضو جديد اكتب تاريخ ميلادو و عملية الحفظ تشمل مذلك الثلاثة تاكسات و التايمر بيكر مع بعضهم
المشكلة دايما يبقى نفس العمر مسجل لما بجي افتح الفورم  ولو بعد عام لكن من المفروض العمر يتغير كل يوم و مش معقول يوميا اعمل تعديل على البيانات عشان يظهر العمر الجديد
كيف ربنا يساركم اسوي هذي المشكلة ماعندي بصراحة فكرة براسي .. او حتى اعرض العمر الجديد في تاكسات 4 و5و6 بعيدا عن تاكسات المحفوظين بقاعدة البيانات
وعليكم السلام ورحمة الله وبركاته

المشكلة لديك تترتب هنا
DateTimePicker

حيث انك تقوم فى كل مرة بفتح الفرم ليقوم بعرض نفس اليوم الحالى به
وبالتالى سيقوم بعرض الناتج 0 لعدد الايام والشهر والسنة

واذا قمت بتغيير السنة لـ سنة سابقة مثلاً 
ستجد الاختلاف ظهر معك واصبح يعمل

الامر كله علك ان تعمل كود استعلام لجلب تاريخ الميلاد
وتمريره كا قيمة الى DateTimePicker

حتى يقوم بعد ذلك بتنفيذ عرض العمر 

تحياتى لك
وتمنياتى لك التوفيق
تفضل أخي عبدالعزيز
كود :
Public Class Form1

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Me.DateTimePicker1.Value = GetSetting(Application.ProductName, "Age", "Birthday", Now)
       DateTimePicker1_KeyUp(Nothing, Nothing)
   End Sub
   Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
       SaveSetting(Application.ProductName, "Age", "Birthday", Me.DateTimePicker1.Value.Date)
   End Sub

   Private Sub DateTimePicker1_KeyUp(sender As Object, e As KeyEventArgs) Handles DateTimePicker1.KeyUp
       Dim dob As DateTime
       dob = New DateTime(DateTimePicker1.Value.Year, DateTimePicker1.Value.Month, DateTimePicker1.Value.Day)
       Dim tday As TimeSpan = DateTime.Now.Subtract(dob)
       Dim years As Integer, months As Integer, days 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.Year, dob.Month) - dob.Day + DateTime.Now.Day
       Else
           days = DateTime.Now.Day - dob.Day
       End If
       years = Math.Floor(months / 12)
       months -= years * 12
       TextBox1.Text = years : TextBox2.Text = months : TextBox3.Text = days
   End Sub

End Class
طيب اذا كان عندك 4000 موظف ومطلوب تحديث الاعمار تلقائيا؟ هل تنفع هذه الطريقة ام نحتاج الى لوب وتايمر يعمل تلقائيا؟او اية فكرة اخرى.جزاكم الله خيرا