29 Şubat 2012 Çarşamba

C# ile DateTime sınıfı

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 bir DateTime 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ünü (DayOfWeek enum değeri olarak, örneğin Monday, Tuesday) alır.
  • DayOfYear: Yılın kaçıncı günü olduğunu (1-366 arasında bir tamsayı) alır.
  • Month: Ay 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 bir DateTime ö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 bir DateTime ö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 belirtilen DateTime nesnesini çıkarır ve bir TimeSpan nesnesi döndürür (iki tarih arasındaki zaman farkını temsil eder).
  • Subtract(TimeSpan value): Mevcut tarihten belirtilen TimeSpan nesnesini çıkarır ve yeni bir DateTime nesnesi döndürür.
  • ToString(string format): DateTime nesnesini belirtilen formata göre 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ımızda, C# dilinin diğer önemli yapı taşlarını keşfetmeye devam edeceğiz.

Webkolog'u 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