Merhaba değerli Webkolog.net takipçileri, bugünkü yazımızda C# programlama dilinin temel taşlarından ve zamanla ilgili her türlü işlemi yapmamızı sağlayan güçlü bir sınıf olan DateTime
'ı yakından inceleyeceğiz. .NET Framework 4 ile birlikte gelen bu sınıf, uygulamalarımızda tarih ve saat bilgilerini yönetmek, bu bilgiler üzerinde çeşitli işlemler yapmak ve farklı formatlarda görüntülemek için bize zengin bir araç seti sunar. Gelin, DateTime
sınıfının özelliklerine ve kullanışlı metotlarına birlikte göz atalım.
DateTime
Nesnesi Oluşturma Yolları
DateTime
sınıfından bir nesne oluşturmanın birkaç farklı yolu bulunmaktadır:
Belirli Bir Tarih ve Saat ile Oluşturma
Yıl, ay ve gün bilgilerini vererek bir DateTime
nesnesi oluşturabiliriz. İsteğe bağlı olarak saat ve dakika bilgilerini de ekleyebiliriz.
DateTime tarih1 = new DateTime(2025, 04, 30); // Sadece tarih bilgisi
DateTime tarih2 = new DateTime(2025, 04, 30, 17, 45, 00); // Tarih ve saat bilgisi
Anlık Tarih ve Saati Alma
Uygulamanın o anki tarih ve saat bilgisini almak için DateTime.Now
özelliğini kullanırız.
DateTime anlikTarih = DateTime.Now;
Console.WriteLine(anlikTarih); // O anki tarih ve saat bilgisini görüntüler
DateTime
Sınıfının Özellikleri
DateTime
nesnelerinden çeşitli tarih ve saat bileşenlerine kolayca erişebiliriz:
Date
: Sadece tarih kısmını (yyyy-MM-dd
) içeren birDateTime
nesnesi döndürür.Hour
: Saat bilgisini (0-23 arasında bir tamsayı) alır.Day
: Ayın gününü (1-31 arasında bir tamsayı) alır.DayOfWeek
: Haftanın gün bilgisini (DayOfWeek
enum değeri olarak, örneğinMonday
,Tuesday
) alır.DayOfYear
: Yılın kaçıncı günü olduğunu (1-366 arasında bir tamsayı) alır.Month
: Ayın bilgisini (1-12 arasında bir tamsayı) alır.Year
: Yıl bilgisini (dört basamaklı bir tamsayı) alır.Now
: Şu anki tarih ve saat bilgisini içeren statik birDateTime
özelliği.Minute
: Dakika bilgisini (0-59 arasında bir tamsayı) alır.Second
: Saniye bilgisini (0-59 arasında bir tamsayı) alır.Today
: Sadece bugünün tarih bilgisini (yyyy-MM-dd 00:00:00
) içeren statik birDateTime
özelliği.
Örnek Kullanım:
DateTime bugun = DateTime.Now;
Console.WriteLine("Bugünün Tarihi: " + bugun.Date);
Console.WriteLine("Saat: " + bugun.Hour);
Console.WriteLine("Günün Adı: " + bugun.DayOfWeek);
Console.WriteLine("Yılın Kaçıncı Günü: " + bugun.DayOfYear);
DateTime
Sınıfının Yardımcı Metotları
DateTime
nesneleri üzerinde çeşitli tarih ve saat manipülasyonları yapabileceğimiz kullanışlı metotlar bulunur:
AddDays(double value)
: Mevcut tarihe belirtilen sayıda gün ekler. Negatif değer verilirse gün çıkarır.AddMonths(int value)
: Mevcut tarihe belirtilen sayıda ay ekler. Negatif değer verilirse ay çıkarır.AddYears(int value)
: Mevcut tarihe belirtilen sayıda yıl ekler. Negatif değer verilirse yıl çıkarır.AddHours(double value)
: Mevcut tarihe belirtilen sayıda saat ekler. Negatif değer verilirse saat çıkarır.AddMinutes(double value)
: Mevcut tarihe belirtilen sayıda dakika ekler. Negatif değer verilirse dakika çıkarır.AddSeconds(double value)
: Mevcut tarihe belirtilen sayıda saniye ekler. Negatif değer verilirse saniye çıkarır.AddMilliseconds(double value)
: Mevcut tarihe belirtilen sayıda milisaniye ekler. Negatif değer verilirse milisaniye çıkarır.Subtract(DateTime value)
: Mevcut tarihten belirtilenDateTime
nesnesini çıkarır ve birTimeSpan
nesnesi döndürür (iki tarih arasındaki zaman farkını temsil eder).Subtract(TimeSpan value)
: Mevcut tarihten belirtilenTimeSpan
nesnesini çıkarır ve yeni birDateTime
nesnesi döndürür.ToString()
:DateTime
nesnesini string bir değere dönüştürür.
Örnek Kullanım:
DateTime yarin = DateTime.Now.AddDays(1);
DateTime gecenAy = DateTime.Now.AddMonths(-1);
TimeSpan fark = yarin.Subtract(DateTime.Now);
Console.WriteLine("Yarın: " + yarin.ToString("dd.MM.yyyy HH:mm"));
Console.WriteLine("Geçen Ay: " + gecenAy.ToString("MMMM yyyy"));
Console.WriteLine("Yarın ile Bugün Arasındaki Fark (Gün): " + fark.TotalDays);
DateTime
Nesnelerini Formatlama
ToString()
metodu ile DateTime
nesnelerini ihtiyacımıza uygun farklı formatlarda string olarak görüntüleyebiliriz. İşte bazı yaygın format belirteçleri:
yy
: Yılın son iki basamağı (örneğin, 25).yyyy
: Dört basamaklı yıl (örneğin, 2025).MM
: İki basamaklı ay (örneğin, 04).MMM
: Ayın üç karakterli kısaltılmış adı (örneğin, Nis).MMMM
: Ayın tam adı (örneğin, Nisan).dd
: İki basamaklı gün (örneğin, 30).d
: Günün rakamsal değeri (örneğin, 30).ddd
: Haftanın üç karakterli kısaltılmış günü (örneğin, Çar).dddd
: Haftanın tam günü (örneğin, Çarşamba).HH
: 24 saatlik formatta saat (örneğin, 17).hh
: 12 saatlik formatta saat (örneğin, 05).mm
: İki basamaklı dakika (örneğin, 45).ss
: İki basamaklı saniye (örneğin, 00).tt
: AM/PM göstergesi (örneğin, ÖS).
Örnek Formatlama:
DateTime simdi = DateTime.Now;
Console.WriteLine(simdi.ToString("dd/MM/yyyy")); // 30/04/2025
Console.WriteLine(simdi.ToString("yyyy-MM-dd HH:mm:ss")); // 2025-04-30 17:45:32
Console.WriteLine(simdi.ToString("dd MMM yyyy ddd")); // 30 Nis 2025 Çar
TimeSpan
ile Tarih Farkını Hesaplama
İki DateTime
nesnesi arasındaki zaman farkını bulmak için Subtract()
metodunu kullanırız. Bu metot bir TimeSpan
nesnesi döndürür. TimeSpan
nesnesi, zaman aralığını gün, saat, dakika, saniye gibi farklı birimlerde temsil etmemizi sağlar.
DateTime baslangic = new DateTime(2025, 01, 01);
DateTime bitis = DateTime.Now;
TimeSpan gecenSure = bitis.Subtract(baslangic);
Console.WriteLine("Toplam Gün Sayısı: " + gecenSure.TotalDays);
Console.WriteLine("Toplam Saat Sayısı: " + gecenSure.TotalHours);
Console.WriteLine("Geçen Süre (Gün.Saat:Dakika:Saniye): " + gecenSure.ToString());
---
Evet sevgili Webkolog.net okurları, bu yazımızda C# .NET Framework 4 ile DateTime
sınıfının temel özelliklerini, nesne oluşturma yöntemlerini, yardımcı metotlarını ve formatlama seçeneklerini detaylı bir şekilde inceledik. Zamanı doğru bir şekilde yönetmek ve işlemek, birçok uygulamanın temel gereksinimlerinden biridir ve DateTime
sınıfı bu konuda bize güçlü araçlar sunar. Umarım bu rehber, DateTime
sınıfını projelerinizde etkin bir şekilde kullanmanıza yardımcı olur. Bir sonraki yazımda, C# dilinin diğer önemli yapı taşlarını keşfetmeye devam edeceğiz. Webkolog.net'i takipte kalın!
Hepinize zamanı verimli kullandığınız ve başarılı projeler geliştirdiğiniz günler dilerim!
0 yorum:
Yorum Gönder