YazilimDevi.Com {..} Yazılım Devi Olacaksın :)  
Kullanıcı Adı :
Şifre :
 
   
  En Çok İzlenen KonularAnlatım
İzle  C# ile Ado.NET-Tablo Verilerini Projemize AktaralimEngin Demirog
İzle  Active Directory Kurulumu (1)Salih Demirog
İzle  Exchange Server 2003 KurulumuSalih Demirog
ASP.NET
ASP.NET AJAX
BILGISAYAR
C#
CRYSTAL REPORTS
CSS
LINQ
MS ACCESS
MS EXCEL
MS POWERPOINT
MS WORD
POCKET PC
SQL
SQL SERVER
VISUAL BASIC
WPF
ISA SERVER 2006
MS EXCHANGE SERVER
MS OUTLOOK
MS SERVER 2003-2008
 
 

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.

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("Iki Tarih Arasindaki Fark "+toplamdakika.ToString()+" Dakikadir");
        }

 

//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.

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.

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.

 

Umarim Yararli Olmustur. Iyi Çalismalar…

 

                                                                                              Yazan: Salih DEMIROG