C# Tarih ve Zaman İşlemleri

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);
    }
}

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir