emirhanHCL 1
emirhanHCL
farkmt2official 1
farkmt2official
mannaxxx 1
mannaxxx
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
Hikaye Ekle

Altın Konu c# Tarih ve Saat İşlemleri

  • Konuyu başlatan Konuyu başlatan lHezarfeNl
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 183

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

1.jpg

C# dilini kullanırken yapacağımız tarih ve zaman içeren işlemler için DateTime ve TimeSpan yapılarını kullanırız. Bu iki yapı, “System” isim alanı içerisinde yer almaktadır.

DateTime Yapısının oluşturulması

Bir DateTime yapısı oluşturabilmek için birden fazla yapıcı metot bulunmaktadır. Bunlardan yaygın olarak kullanılanları örneklerde kullanacağım. Tümünü bu inceleyebilirsiniz.

Kod:
DateTime yeniTarih = new DateTime(yıl , ay, gün);
DateTime yeniTarih2 = new DateTime(yıl , ay, gün,saat,dakika,saniye);

DateTime ile bugünün tarihi yazılması

Şimdi DateTime yapısına basit bir örnek ile başlayalım. Uygulamamızda o an bulunulan tarihi ekranda gösterelim. Bugünün tarihini alırken doğrudan DateTime yapısına “.Now” özelliği ile erişebiliriz.

Bugünün tarihini gösterirken iki farklı seçeneğimiz vardır.

Kod:
static void Main(string[] args)
{
    DateTime bugun = DateTime.Now;
    Console.WriteLine("Uygulamayı " + bugun + " tarihinde çalıştırdın.");
}


Now: bulunulan tarih ile beraber saat bilgisini de verir.

Today: sadece bulunulan tarihi verir. Saat bilgisini “00:00:00” olarak gösterir.
1709716125635.png

Today ile beraber tarih yazdırılması;
Kod:
static void Main(string[] args)
{
    DateTime bugun = DateTime.Today;
    Console.WriteLine("Uygulamayı çalıştırdığın gün: " + bugun + ".");
}

1709716162225.png


Belirli bir tarih oluşturma

Şimdi kendimiz bir DateTime yapısı oluşturalım. Bunun için DateTime’ın yapıcı metotlarından birini kullanacağız.
Kod:
static void Main(string[] args)
     {
         DateTime tarih= new DateTime(2017,11,10, 9,5,0);
         Console.WriteLine(tarih + " tarihinde M.Kemal Atatürk aramızdan ayrıldı.");
     }
1709716182545.png

DateTime Özellikleri

DateTime yapısındaki bir değişkenimize ait kullanabileceğimiz özellikler;

AdıAçıklama
Bu örnek tarih bileşenini alır.
Bu örnek tarafından temsil edilen ayın gününü alır.
Bu örnek tarafından temsil edilen haftanın gününü alır.
Bu örnek tarafından temsil edilen yılın günü alır.
Bu örnek tarafından temsil edilen tarih saat bileşenini alır.
Bu örnek tarafından temsil edilen zaman yerel saat, Eşgüdümlü Evrensel Saat (UTC) ve bunların hiçbiri göre gösteren bir değer alır.
Bu örnek tarafından temsil edilen tarih milisaniye bileşeninin alır.
Bu örnek tarafından temsil edilen tarih dakika bileşenini alır.
Bu örnek tarafından temsil edilen tarih ay bileşenini alır.
Alır bir DateTime geçerli tarih ve saat bu bilgisayarda, yerel zaman olarak ifade edilen ayarlanır nesnesi.
Tarihin saniye bileşenini bu örneği tarafından temsil edilen alır.
Tarihi temsil eden ticks sayısını ve bu örneğinin saati alır.
Bu örnek için günün saatini alır.
Geçerli tarihi alır.
Alır bir DateTime Geçerli tarih ve saati Eşgüdümlü Evrensel Saat (UTC) olarak ifade edilen, bu bilgisayarda ayarlanmış nesnesi.
Bu örnek tarafından temsil edilen tarihin Yıl bileşenini alır.


Sık Kullanılan Yardımcı Metotlar

AddDays(gün)
: belirtilen gün sayısı kadar mevcut tarihe gün eklemesi yapar.

AddHours(saat) : belirtilen saat kadar mevcut tarihe saat eklemesi yapar.

AddMiliseconds(milisaniye) : belirtilen milisaniye kadar mevcut tarihe milisaniye eklemesi yapar.

AddMinutes(dakika) : belirtilen dakika kadar mevcut tarihe dakika eklemesi yapar.

AddMonths(ay) : belirtilen ay kadar mevcut tarihe ay eklemesi yapar.

AddSeconds(saniye) : belirtilen saniye kadar mevcut tarihe saniye eklemesi yapar.

AddYears(yıl) : belirtilen yıl kadar mevcut tarihe yıl eklemesi yapar.

Subtract(çıkarılacak DateTime) : mevcut tarihten verilen DateTime tipinde yeni tarihi çıkartır.

Subtract(çıkarılacak TimeSpan) : mevcut tarihten verilen TimeSpan tipinde yeni tarihi çıkartır.

ToString() : mevcut tarihi string türüne dönüştürür. Format belirtilmiş işe, belirtilen formatta dönüşüm yapılır.



Yardımcı metotların kullanımı

Örnek olarak, yıl başını ve bir sonraki yıl başını bize gösteren bir uygulama yazalım.

Kod:
static void Main(string[] args)
{
    DateTime tarih= new DateTime(2017,1,1);
    Console.WriteLine(tarih + " tarihi yeni yıl başlangıcıdır.");
    tarih = tarih.AddYears(1);
    Console.WriteLine(tarih + " tarihi de yeni yıl başlangıcıdır.");
}
1709716208860.png

ki tarih arasındaki gün sayısını bulmak

Vermiş olduğumuz iki tarih arasındaki gün sayısını hesaplayan bir başka örnek c# uygulaması yazalım.

İki tarih arasındaki farkı hesaplarken metot bize TimeSpan türünde dönüş yapacaktır. Bunun için farkı elde ederken bir TimeSpan türünde değişkene almamız gerekecektir.

TimeSpan türündeki değişkene TotalDays özelliğini kullanarak bize aradaki farkı gün cinsinden verecektir.


Kod:
static void Main(string[] args)
 {
     DateTime ilkTarih = new DateTime(2017, 12, 3);
     DateTime ikinciTarih = new DateTime(2018, 1, 1);
 
     TimeSpan span = ikinciTarih.Subtract(ilkTarih);
 
     Console.WriteLine("{0} gün sonra 2018 yılına gireceğiz.", span.TotalDays);
 }
1709716235290.png

Kullanabileceğiniz diğer TimeSpan özellikleri;

TotalHour
: farkı saat cinsinden verir.

TotalMilisecond : farkı milisaniye cinsinden verir.

TotalMinutes : farkı dakika cinsinden verir.

TotalSeconds : farkı saniye cinsinden verir.


Verilen tarihin hangi gün olduğunu bulmak

Oluşturuduğumuz tarihe DayOfWeek ekleyerek, o güne ait ismi DayOfWeek türünde alabiliriz.

Kod:
static void Main(string[] args)
  {
      DateTime bugun = DateTime.Now;
      Console.WriteLine("Bugün günlerden: " + bugun.DayOfWeek);
  }
1709716254545.png

Tarih ve Saatin formatlı gösterimi

Elimizdeki DateTime değişkenini ekranda gösterirken farklı formatlarda göstermemiz gerekebilir. Bu gibi durumlar için bir takım kısaltmalardan ve söz dizimlerinden faydalanırız. Bunlar aşağıdaki gibidir.
Kod:
static void Main()
  {
      DateTime tarih = DateTime.Now;//bugünün tarihinin alınması
      string format = "MMM ddd d HH:mm yyyy";//tarihe uygulanacak format.
      Console.WriteLine(tarih.ToString(format));
  }
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonucu alacağız.
Kod:
Dec Sun 22 23:15 2017
Kullanılabilecek diğer DateTime formatları:
Kod:
MMM     üç karakterli ay ismi
ddd     üç karakterli gün ismi
d       bulunulan günün rakamsal değeri
HH      24 saatlik gösterimde saat değeri
h       12 saatlik gösterimde saat değeri
mm      iki basamaklı dakika değeri
yyyy    dört basamaklı yıl değeri
yy      iki basamaklı yıl değeri(son iki basamak)

Tek karakterli formatlar

Kod:
static void Main()
    {
        DateTime tarih = DateTime.Now;
        Console.WriteLine(tarih.ToString("d"));
        Console.WriteLine(tarih.ToString("D"));
        Console.WriteLine(tarih.ToString("f"));
        Console.WriteLine(tarih.ToString("F"));
        Console.WriteLine(tarih.ToString("g"));
        Console.WriteLine(tarih.ToString("G"));
        Console.WriteLine(tarih.ToString("m"));
        Console.WriteLine(tarih.ToString("M"));
        Console.WriteLine(tarih.ToString("o"));
        Console.WriteLine(tarih.ToString("O"));
        Console.WriteLine(tarih.ToString("s"));
        Console.WriteLine(tarih.ToString("t"));
        Console.WriteLine(tarih.ToString("T"));
        Console.WriteLine(tarih.ToString("u"));
        Console.WriteLine(tarih.ToString("U"));
        Console.WriteLine(tarih.ToString("y"));
        Console.WriteLine(tarih.ToString("Y"));
    }
Yukarıdaki uygulamanın çıktısı aşağıdaki gibidir.
Kod:
d   3.12.2017
D   3 Aralık 2017 Pazar
f   3 Aralık 2017 Pazar 22:41
F   3 Aralık 2017 Pazar 22:41:50
g   3.12.2017 22:41
G   3.12.2017 22:41:50
m   3 Aralık
M   3 Aralık
o   2017-12-03T22:41:50.5366721+03:00
O   2017-12-03T22:41:50.5366721+03:00
s   2017-12-03T22:41:50
t   22:41
T   22:41:50
u   202024-03-06 22:41:50Z
U   3 Aralık 2017 Pazar 19:41:50
y   Aralık 2017
Y   Aralık 2017

DateTime string dönüşümü

Kod:
static void Main(string[] args)
{
    DateTime tarih = DateTime.Now;
    Console.WriteLine(tarih.ToLongDateString());  // D.
    Console.WriteLine(tarih.ToLongTimeString());  // T.
    Console.WriteLine(tarih.ToShortDateString()); // d.
    Console.WriteLine(tarih.ToShortTimeString()); // t.
    Console.WriteLine(tarih.ToString());
}
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst