Bu bölümde tarih ve zaman değerlerini karşılaştırma işlemlerini ele alacağız. Tarih ve zaman değerlerini karşılaştırmak için DateTime sınıfının CompareTo ve Equals metodları kullanılır.
.CompareTo : İki tarih değerini karşılaştırarak geriye integer türünde bir değer döndürür.
int sonuc = tarih1.CompareTo(tarih2);
Dönen sonuç;
-1 ise tarih1 değeri, tarih2 değerinden küçük anlamına gelir.
0 ise iki tarih değerinin eşit olduğu,
1 ise tarih1 değeri, tarih2 değerinden büyük anlamına gelir.
Örneklemek için bir form projesi oluşturup aşağıdaki gibi bir tasarım yaptıktan sonra buton’ un click event’ ine şöyle bir kod bloğu yazarak test edebiliriz…
private void btnKarsilastir_Click(object sender, EventArgs e) { string tarih1, tarih2; int sonuc; tarih1 = string.Format("{0:d}", txtTarih1.Text); tarih2 = string.Format("{0:d}", txtTarih2.Text); sonuc = tarih1.CompareTo(tarih2); switch (sonuc) { case -1: lblSonuc.Text = "Tarih1 değeri, tarih2 değerinden küçük..."; return; case 0: lblSonuc.Text = "Tarih değerleri birbirleriyle eşit..."; return; case 1: lblSonuc.Text = "tarih1 değeri, tarih2 değerinden büyük..."; return; } }
.Equals : İki tarih değerini karşılaştırarak, boolean türünde bir değer döndürür.
bool karşılaştırma;
Dönen değer true olursa iki tarih değerinin birbirine eşit olduğu, false ise tarih değerlerinin farklı oldukları anlaşılır.
Form tasarımında bir değişiklik yapmadan sadece button event kodunda bir değişiklik yapıyoruz…
private void btnKarsilastir_Click(object sender, EventArgs e) { string tarih1, tarih2; bool sonuc; tarih1 = string.Format("{0:d}", txtTarih1.Text); tarih2 = string.Format("{0:d}", txtTarih2.Text); sonuc = tarih1.Equals(tarih2); if (sonuc) { lblSonuc.Text = "Tarihler birbirine eşit..."; } else { lblSonuc.Text = "Tarihler eşit değil..."; } }
Bir sonraki yazıda ise String sınıfını kullanarak standart ve custom DateTime format işlemlerini işleyeceğiz.