C# ta TIMESPAN YAPISI ile IKI TARIH ARASINDAKI SÜREYI HESAPLAMA

Merhaba arkadaslar bu makalemizde iki tarih arasindaki süreyi (saat, dakika, saniye vb. cinsinden) nasil hesaplayacagimizi ögrenmis olacagiz. C# ta bunu TimeSpan yapisi ile yapiyoruz.

Peki bu komut bizim ne isimize yarayacak? Bazi durumlarda 2 tarih arasinda gecen süreyi bulmak isteyebilirsiniz. Ben bunu Ankaran’in ego projesinin benzerini yazarken kullanmistim. Söyle açiklamak gerekirse belediyelerin ulasim araçlarina ilk bindigimizde belirli bir ücret kesiliyor. Ücret kesilen bileti belirli bir süre geçmeden (Bu süre Ankara’da 45 dk, Istanbul’da 90 dk) baska bir araçta kullanirsak aktarma oluyor ve bu durumda biletimizden herhangi bir ücret düsülmüyor. Iste aradaki süreyi hesaplamak için (45 dk 90 dk ne olursa) TimeSpan yapisi isimize çok yarayacaktir.

Simdi sözü fazla uzatmayalim ve örnek bir uygulamayla konuya açiklik getirelim.

Girilen iki tarih arasindaki zaman farkini bize dakika cinsinden versin. Daha sonra bunu diger formatlarda nasil kullanacagimizi belirtecegim.

Ilk olarak formumuza iki adet datetimepicker , bir adette buton sürükleyip birakalim. Form yapimiz, örnegimiz için asagidaki gibi olacak.

csharpta-timespan-yapisi-ile-iki-tarih-arasindaki-sur-1

csharpta-timespan-yapisi-ile-iki-tarih-arasindaki-sur-1

Simdi kodlarimizi yazmaya baslayalim. Her zamanki gibi önce kodlari yazip daha sonra açiklamasini yapacagim. Butonun click eventine asagidaki kodlarimizi yaziyoruz…

private void button1_Click(object sender, EventArgs e) //”Hesapla” Butonu
{
DateTime ilkdeger = dateTimePicker1.Value; //1
DateTime sondeger = dateTimePicker2.Value; //2

System.TimeSpan zaman; //3
zaman = sondeger.Subtract(ilkdeger); //4
int toplamdakika = Convert.ToInt32(zaman.TotalMinutes); //5

MessageBox.Show(“İki Tarih Arasındaki Fark “+toplamdakika.ToString()+” Dakikadır”);
}

//1 – Ilk olarak datetimepickerlerimizin alacagi degerleri bir degiskene attik. Bu degiskenlerde tarih tutulacagi için degiskenimizi tabiî ki DateTime olarak tanimladik.

//2 – Ayni islemi diger datetimepicker için yapiyoruz.

//3 – Artik Time Span yapisini kullanalim. Burada System.TimeSpan zaman , adli bir degisken olusturuyoruz. TimeSpan in kullanilis biçimi bu sekildedir.

//4 – Simdi iki tarih arasinda çikarma islemini yapalim ve bunu zaman adli degiskenimize atalim. Burada sondeger den ilkdeger i çikarttik.

//5 – zaman.TotalMinutes ile iki tarih arasindaki farki dakika cinsinden istedik.. Bize döndürecegi deger double cinsinden olacagi için ben bunu integera çevirip. Integer türünde bir degiskene atadim ve son olarakta sonucu message box la yazdirdim.

Simdi çalistirip sonucu görelim.

csharpta-timespan-yapisi-ile-iki-tarih-arasindaki-sur-2

csharpta-timespan-yapisi-ile-iki-tarih-arasindaki-sur-2

Arada 1 günlük fark var. 1 gün 24 saat, onu da 60 la çarparsak sonuç 1440 olacaktir.

TimeSpan yapisi tabiî ki bu kadarla bitmiyor;

· Istediginiz bir tarihe, fazladan saat,dakika,yil vs ekleyebilirsiniz.

csharpta-timespan-yapisi-ile-iki-tarih-arasindaki-sur-3

csharpta-timespan-yapisi-ile-iki-tarih-arasindaki-sur-3

Not: Ekleyeceginiz dk, sn, saat, yil vs double cinsinden olmalidir.

Örnek: sondeger.AddDays(2.0);

· Tabi ki sadece toplam dakikayi degil toplam saati veya günü vs alabilirsiniz.

csharpta-timespan-yapisi-ile-iki-tarih-arasindaki-sur-4

csharpta-timespan-yapisi-ile-iki-tarih-arasindaki-sur-4

Umarim Yararli Olmustur. Iyi Çalismalar…