Bu örnekte C# ile DateTimePicker Kontrolü ile seçilen doğum tarihine göre kişinin yaşını hesaplayacağız.
Yaş hesabını iki farklı şekilde iki örnek olarak paylaşacağım. 1. örnekte kullanıcının sadece yaşı gösterilirken, diğer örnekte daha ayrıntılı bir hesaplama yaparak kişinin yaşını yıl, ay ve gün olarak (ör: 32 yıl 6 ay 13 gün) görüntüleyeceğiz.
Örnek1: Örneğimizde doğum tarihi DateTimePicker’ a girilmekte ve bugünün tarihi DatTimeNow fonksiyonu ile elde edilmektedir. Daha sonra bugünün tarihi ve doğum tarihi arasındaki gün farkı hesaplanarak iki tarih arasındaki gün farkı bulunmaktadır.
Daha sonra ise bulunan bu sonuç 365′ e bölerek yaş hesaplamasını gerçekleştiriyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace datetimepicker_age { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { TimeSpan fark; int yas; DateTime dogumtarihi; dogumtarihi = Convert.ToDateTime(dateTimePicker1.Text); fark = DateTime.Now.Date.Subtract(dogumtarihi); yas = Convert.ToInt32(fark.TotalDays); lblSonuc.Text = "Şuan " + yas / 365 + " yaşındasınız."; } private void Form1_Load(object sender, EventArgs e) { label1.Text = "Bugünün Tarihi : " + DateTime.Now.ToShortDateString(); } } } |
Ekran Çıktısı:
Örnek 2: Bu örnekte ise doğum tarihi girilen kişinin yaşını detaylı hesaplayacağız. Gün ay ve yıl olarak ekranda göstereceğiz. Örneğimizde metot kullanarak hesaplama işlemini metotla gerçekleştireceğiz. hazırladığımız metot iki parametre almaktadır. Bu parametrelerden biri bugünün tarihi, diğeri ise doğum tarihi olacaktır. Aşağıda örneğe ait C# kodları ve ekran çıktısını görebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace datetimepicker_age { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public int[] ikiTarihFarki(DateTime sonTarih, DateTime ilkTarih) { int ilkGun, ilkAy, ilkYil; int sonGun, sonAy, sonYil; int farkYil, farkAy, farkGun; farkYil = 0; farkAy = 0; farkGun = 0; ilkYil = ilkTarih.Year; ilkAy = ilkTarih.Month; ilkGun = ilkTarih.Day; sonGun = sonTarih.Day; sonAy = sonTarih.Month; sonYil = sonTarih.Year; if (sonGun < ilkGun) { sonGun += DateTime.DaysInMonth(sonYil, sonAy); farkGun = sonGun - ilkGun; sonAy--; if (sonAy < ilkAy) { sonAy += 12; sonYil--; farkAy = sonAy - ilkAy; farkYil = sonYil - ilkYil; } else { farkAy = sonAy - ilkAy; farkYil = sonYil - ilkYil; } } else { farkGun = sonGun - ilkGun; if (sonAy < ilkAy) { sonAy += 12; sonYil--; farkAy = sonAy - ilkAy; farkYil = sonYil - ilkYil; } else { farkAy = sonAy - ilkAy; farkYil = sonYil - ilkYil; } } int[] sonuc = new int[3]; sonuc[0] = farkYil; sonuc[1] = farkAy; sonuc[2] = farkGun; return sonuc; } private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { int[] sonuc=ikiTarihFarki(DateTime.Now, Convert.ToDateTime(dateTimePicker1.Text)); lblSonuc.Text = sonuc[0].ToString() + " Yıl " + sonuc[1].ToString() + " Ay " + sonuc[2].ToString() + " Gün"; } } } |
Ekran Çıktısı:
Yorum Yap