15 Ağustos 2013 Perşembe

Windows Form Application Örnekleri 4 (DateTimePicker)


                Bur örneğimde yapmak istediğim seçtiğim iki tarih arasında kaç gün geçtiğini hesaplamak. Bu örneği yaparken amacım DateTimePicker ve DateTime kullanımını da az çok öğrenmek.

                İlk olarak yeni bir Form Application projesi oluşturuyorum. Sonrasında ise görsel kısmın tasarımını yapıyorum.


                Formun üst kısmına Toolbox tan sürüklediğim DatetimePicker ı bırakıyorum. Bu şekilde Start dersek eğer DateTimePicker ın alışkın olduğumuz takvimin aynısı olduğunu görebiliriz. Forma tekrar dönüyorum ve 2 tane label sürüklüyorum ve text kısımlarını sırası ile Tarih 1 , Tarih 2 olarak değiştiriyorum. Bunlarda seçtiğim tarihlerin gözükmesini istiyorum. Seçtiğim tarihleri label lara atamak için Ata isimli bir buton ekliyorum. Farkı hesaplaması için Fark butonu ve istediğimiz zaman tarihleri değiştirmek için Temizle butonunu , son olarakta gün farkını belirtmesi için en alta bir label daha ekliyorum ve text ini Fark olarak değiştiriyorum.

                Form hazır , son bir değişiklik olarak Fark butonunun Enabled özelliğini false olarak değiştiriyorum. Bunu her iki tarih atandıktan sonra true olarak kod kısmından değiştireceğim , amacım olası hataları engellemek.

                Kod kısmına geçmek için sırası ile eklediğim bütün ögelerin üzerine çift tıklayarak kod kısmında gözükmesini sağlıyorum. Sonra ilk isim Form sınıfı içerisine aşağıdaki gibi değişkenlerimi tanımlamak oluyor.

public int x = 0;
public DateTime d1;
public DateTime d2;
               
                Yukarıdaki x ’ i bir sayaç olarak kullanıyorum. Bu sayacı da label lara tarih atarken sırasıyla atama yapabilmek için tanımladım. Bunu if yapısıyla aşağıdaki gibi Ata butonu içerisine yazıyorum.

        private void button1_Click(object sender, EventArgs e)
        {
            x++;
            DateTime time = dateTimePicker1.Value;
            if (x == 1)
            {
                d1 = time;
                label1.Text = time.ToLongDateString();
            }
            if (x == 2)
            {
                button2.Enabled = true;
                d2 = time;
                label2.Text = time.ToLongDateString();
            }
        }

                Arttırdığım x ile tarihi istediğim label a atayabiliyorum. Burada dikkat etmemiz gereken husus DateTime tipinde bir değişken oluşturuyoruz ve bunu dateTimePicker1.Value eşitliyoruz , böylece seçtiğimiz tarihi time değişkenimize atamış olduk.

Label la seçtiğimiz tarihi atarken bunu String bir ifadeye çevirmemiz gerekiyor. Bunun için de ToLongDateString() kodu ile String ifadeye çeviriyoruz. Burada dikkat etmemiz gereken husus ise ToLongTimeString() seklinde yazmamamız gerektiğidir. Eğer ki bu şekilde yazarsak sadece saat değerini görürüz.

           İlk yazdığımız koddaki DateTime d1 ve DateTime d2 ise Fark butonuna bastığımızda aradaki farkı hesaplayabilmek için seçtiğimiz tarihleri tutan değişkenlerdir. İkinci yazdığım kodda if ifadeleri içinde d1 ve d2 ye de atama yaptığımıza dikkat edelim.

           Temizle butonu için kodumu aşağıdaki gibi yazıyorum;

        private void button3_Click(object sender, EventArgs e)
        {
            x = 0;
            label1.Text = "Tarih 1";
            label2.Text = "Tarih 2";
            label3.Text = "Fark";
        }

          Fark butonu için kodumu aşağıdaki gibi yazıyorum;

        private void button2_Click(object sender, EventArgs e)
        {
            label3.Text ="Fark  " + (d2.Date - d1.Date).Days.ToString() + "  gün";
        }

          Fark butonu için d2.Date – d1.Date farkını alıyorum ve bununda gün (Days) kısmını ToString() ile Stringe dönüştürüp labe3 e atıyorum.

           Bu küçük programımız da hazır hale geldi. Çalıştırıp kendi yaşadığım gün sayısını hesaplıyorum.J(7849 gün)

                Uygulamanın kodunu diskten paylaşıyorum isteyenler göz atabilir!

       

         

0 yorum:

Yorum Gönder