Skip to content

DateTime İşlemleri

Genel Bakış

DateTime işlemleri, tarih ve saat verilerini manipüle etmek için kullanılan temel operasyonlardır. C#'ta System.DateTime ve System.TimeSpan sınıfları kullanılarak tarih ve saat işlemleri gerçekleştirilir.

Temel DateTime İşlemleri

  1. DateTime Oluşturma

    // Şu anki tarih ve saat
    DateTime now = DateTime.Now;
    
    // UTC tarih ve saat
    DateTime utcNow = DateTime.UtcNow;
    
    // Belirli bir tarih
    DateTime specificDate = new DateTime(2024, 1, 1);
    
    // Belirli bir tarih ve saat
    DateTime specificDateTime = new DateTime(2024, 1, 1, 12, 30, 0);
    

  2. DateTime Formatlama

    DateTime now = DateTime.Now;
    
    // Kısa tarih
    string shortDate = now.ToShortDateString(); // "01.01.2024"
    
    // Uzun tarih
    string longDate = now.ToLongDateString(); // "1 Ocak 2024 Pazartesi"
    
    // Kısa saat
    string shortTime = now.ToShortTimeString(); // "12:30"
    
    // Uzun saat
    string longTime = now.ToLongTimeString(); // "12:30:45"
    
    // Custom format
    string customFormat = now.ToString("dd.MM.yyyy HH:mm:ss");
    

  3. DateTime Karşılaştırma

    DateTime date1 = new DateTime(2024, 1, 1);
    DateTime date2 = new DateTime(2024, 1, 2);
    
    // Eşitlik kontrolü
    bool isEqual = date1 == date2;
    
    // Büyük/küçük kontrolü
    bool isGreater = date1 > date2;
    
    // CompareTo
    int result = date1.CompareTo(date2);
    

  4. DateTime Manipülasyonu

    DateTime date = new DateTime(2024, 1, 1);
    
    // Gün ekleme
    DateTime tomorrow = date.AddDays(1);
    
    // Ay ekleme
    DateTime nextMonth = date.AddMonths(1);
    
    // Yıl ekleme
    DateTime nextYear = date.AddYears(1);
    
    // Saat ekleme
    DateTime nextHour = date.AddHours(1);
    

TimeSpan İşlemleri

  1. TimeSpan Oluşturma

    // Belirli bir süre
    TimeSpan duration = new TimeSpan(1, 30, 0); // 1 saat 30 dakika
    
    // İki tarih arasındaki fark
    DateTime start = new DateTime(2024, 1, 1);
    DateTime end = new DateTime(2024, 1, 2);
    TimeSpan difference = end - start;
    

  2. TimeSpan Özellikleri

    TimeSpan duration = new TimeSpan(1, 30, 0);
    
    int hours = duration.Hours; // 1
    int minutes = duration.Minutes; // 30
    int seconds = duration.Seconds; // 0
    double totalHours = duration.TotalHours; // 1.5
    

DateTime ve TimeZone

  1. TimeZone Dönüşümleri

    DateTime utcNow = DateTime.UtcNow;
    
    // UTC'den local'e
    DateTime localTime = utcNow.ToLocalTime();
    
    // Local'den UTC'ye
    DateTime utcTime = localTime.ToUniversalTime();
    

  2. TimeZone Bilgisi

    // Sistem timezone'u
    TimeZoneInfo localZone = TimeZoneInfo.Local;
    
    // Belirli bir timezone
    TimeZoneInfo istanbulZone = TimeZoneInfo.FindSystemTimeZoneById("Turkey Standard Time");
    
    // Timezone dönüşümü
    DateTime istanbulTime = TimeZoneInfo.ConvertTime(DateTime.Now, istanbulZone);
    

DateTime ve Kültür

  1. Kültüre Özgü Formatlama

    DateTime now = DateTime.Now;
    
    // Türkçe format
    string turkishFormat = now.ToString("d", new CultureInfo("tr-TR"));
    
    // İngilizce format
    string englishFormat = now.ToString("d", new CultureInfo("en-US"));
    

  2. Kültüre Özgü Tarih Ayrıştırma

    string dateString = "01.01.2024";
    DateTime date = DateTime.Parse(dateString, new CultureInfo("tr-TR"));
    

DateTime Validasyonu

  1. Geçerlilik Kontrolü

    string dateString = "31.02.2024";
    DateTime date;
    bool isValid = DateTime.TryParse(dateString, out date);
    

  2. Tarih Aralığı Kontrolü

    DateTime date = new DateTime(2024, 1, 1);
    DateTime minDate = new DateTime(2023, 1, 1);
    DateTime maxDate = new DateTime(2025, 1, 1);
    
    bool isInRange = date >= minDate && date <= maxDate;
    

Mülakat Soruları

  1. DateTime Temelleri
  2. DateTime ve DateTimeOffset arasındaki farklar nelerdir?
  3. DateTime.Now ve DateTime.UtcNow arasındaki fark nedir?
  4. DateTime'ın precision (hassasiyet) değeri nedir?

  5. TimeZone İşlemleri

  6. TimeZoneInfo sınıfı ne işe yarar?
  7. Daylight Saving Time (Yaz Saati) nedir ve nasıl yönetilir?
  8. TimeZone dönüşümlerinde dikkat edilmesi gerekenler nelerdir?

  9. DateTime Formatlama

  10. Custom DateTime formatları nasıl oluşturulur?
  11. Kültüre özgü DateTime formatlaması nasıl yapılır?
  12. DateTime formatlamada performans optimizasyonu nasıl yapılır?

  13. DateTime Manipülasyonu

  14. DateTime.AddXXX() metodları ne zaman kullanılmalıdır?
  15. DateTime aritmetik işlemlerinde dikkat edilmesi gerekenler nelerdir?
  16. DateTime değerlerinin karşılaştırılmasında best practices nelerdir?

  17. TimeSpan İşlemleri

  18. TimeSpan ne zaman kullanılmalıdır?
  19. TimeSpan ve DateTime arasındaki ilişki nedir?
  20. TimeSpan formatlaması nasıl yapılır?

  21. DateTime Validasyonu

  22. DateTime.TryParse() ne zaman kullanılmalıdır?
  23. DateTime validasyonunda dikkat edilmesi gerekenler nelerdir?
  24. DateTime aralık kontrolleri nasıl yapılır?

  25. DateTime ve Veritabanı

  26. DateTime değerleri veritabanında nasıl saklanmalıdır?
  27. DateTime ve SQL arasındaki dönüşümler nasıl yapılır?
  28. DateTime değerlerinin veritabanında indexlenmesi nasıl yapılır?

  29. DateTime ve API'ler

  30. API'lerde DateTime değerleri nasıl formatlanmalıdır?
  31. API'lerde TimeZone bilgisi nasıl yönetilmelidir?
  32. API'lerde DateTime validasyonu nasıl yapılmalıdır?

  33. DateTime ve Performans

  34. DateTime işlemlerinde performans optimizasyonu nasıl yapılır?
  35. DateTime.Parse() vs DateTime.TryParse() performans karşılaştırması nasıldır?
  36. DateTime formatlamada string pooling nasıl kullanılır?

  37. DateTime ve Güvenlik

    • DateTime değerlerinde güvenlik açıkları nasıl önlenir?
    • DateTime injection nedir ve nasıl önlenir?
    • DateTime değerlerinin loglanmasında dikkat edilmesi gerekenler nelerdir?

Örnek Kod Soruları

  1. Tarih Farkı Hesaplama

    public int CalculateDaysBetween(DateTime startDate, DateTime endDate)
    {
        // Implementasyon
    }
    

  2. Yaş Hesaplama

    public int CalculateAge(DateTime birthDate)
    {
        // Implementasyon
    }
    

  3. İş Günü Hesaplama

    public int CalculateBusinessDays(DateTime startDate, DateTime endDate)
    {
        // Implementasyon (hafta sonları ve resmi tatiller hariç)
    }
    

  4. Tarih Formatlama

    public string FormatDate(DateTime date, string culture)
    {
        // Implementasyon
    }
    

  5. TimeZone Dönüşümü

    public DateTime ConvertTimeZone(DateTime date, string sourceZone, string targetZone)
    {
        // Implementasyon
    }
    

Kaynaklar