C# programlama dilinde tarih ve zaman işlemleri yapmak için System isim alanındaki DateTime, TimeSpan ve DateTimeOffset sınıfları kullanılır. Bu sınıflar, tarih ve zaman bilgilerini almak, formatlamak, fark hesaplamak ve diğer birçok işlemi gerçekleştirmek için çeşitli yöntemler sunar.
1. DateTime Sınıfı ile Temel İşlemler
Şimdiki Tarih ve Zamanı Alma
using System;
class Program
{
static void Main()
{
DateTime simdikiZaman = DateTime.Now;
Console.WriteLine("Şimdiki Tarih ve Zaman: " + simdikiZaman);
DateTime sadeceTarih = DateTime.Today;
Console.WriteLine("Bugünün Tarihi: " + sadeceTarih.ToShortDateString());
}
}
Belirli Bir Tarih ve Zaman Tanımlama
using System;
class Program
{
static void Main()
{
DateTime dogumGunu = new DateTime(1990, 7, 15, 10, 30, 0); // Yıl, Ay, Gün, Saat, Dakika, Saniye
Console.WriteLine("Doğum Günü: " + dogumGunu);
}
}
2. Tarih Formatlama
Standart Formatlar
using System;
class Program
{
static void Main()
{
DateTime simdikiZaman = DateTime.Now;
Console.WriteLine("Kısa Tarih: " + simdikiZaman.ToShortDateString());
Console.WriteLine("Uzun Tarih: " + simdikiZaman.ToLongDateString());
Console.WriteLine("Kısa Zaman: " + simdikiZaman.ToShortTimeString());
Console.WriteLine("Uzun Zaman: " + simdikiZaman.ToLongTimeString());
}
}
Özel Formatlar
using System;
class Program
{
static void Main()
{
DateTime simdikiZaman = DateTime.Now;
Console.WriteLine(simdikiZaman.ToString("dd/MM/yyyy")); // Gün/Ay/Yıl
Console.WriteLine(simdikiZaman.ToString("yyyy-MM-dd HH:mm:ss")); // ISO 8601 formatı
Console.WriteLine(simdikiZaman.ToString("dddd, MMMM dd yyyy")); // Uzun format
}
}
3. Tarih ve Zaman Farkı Hesaplama
İki Tarih Arasındaki Fark
using System;
class Program
{
static void Main()
{
DateTime baslangic = new DateTime(2023, 1, 1);
DateTime bitis = DateTime.Now;
TimeSpan fark = bitis - baslangic;
Console.WriteLine("Gün Farkı: " + fark.Days);
Console.WriteLine("Saat Farkı: " + fark.TotalHours);
}
}
4. Tarih ve Zaman Ekleme/Çıkarma
Tarihe Gün Ekleme
using System;
class Program
{
static void Main()
{
DateTime bugun = DateTime.Now;
DateTime birHaftaSonra = bugun.AddDays(7);
Console.WriteLine("Bir Hafta Sonra: " + birHaftaSonra);
DateTime birAyOnce = bugun.AddMonths(-1);
Console.WriteLine("Bir Ay Önce: " + birAyOnce);
}
}
5. Hafta Günü ve Ay Bilgisi
Haftanın Günü
using System;
class Program
{
static void Main()
{
DateTime simdikiZaman = DateTime.Now;
Console.WriteLine("Bugün Haftanın Günü: " + simdikiZaman.DayOfWeek);
}
}
Ay ve Yıl Bilgisi
using System;
class Program
{
static void Main()
{
DateTime tarih = DateTime.Now;
Console.WriteLine("Ay: " + tarih.Month);
Console.WriteLine("Yıl: " + tarih.Year);
}
}
6. TimeSpan ile Zaman Aralıkları
TimeSpan sınıfı, iki tarih veya zaman arasındaki farkı temsil eder.
Zaman Aralığı Oluşturma
using System;
class Program
{
static void Main()
{
TimeSpan zamanAraligi = new TimeSpan(2, 30, 0); // 2 Saat, 30 Dakika, 0 Saniye
Console.WriteLine("Zaman Aralığı: " + zamanAraligi);
}
}
Tarih ile Kullanımı
using System;
class Program
{
static void Main()
{
DateTime simdikiZaman = DateTime.Now;
TimeSpan fark = new TimeSpan(5, 0, 0, 0); // 5 Gün
DateTime gelecekTarih = simdikiZaman + fark;
Console.WriteLine("5 Gün Sonraki Tarih: " + gelecekTarih);
}
}
7. DateTimeOffset Kullanımı
DateTimeOffset, tarih ve zaman bilgisi ile birlikte zaman dilimini de içerir.
Zaman Dilimi ile Tarih
using System;
class Program
{
static void Main()
{
DateTimeOffset tarih = DateTimeOffset.Now;
Console.WriteLine("Tarih ve Zaman: " + tarih);
Console.WriteLine("Zaman Dilimi: " + tarih.Offset);
}
}