Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

C# TimeSpan İle Süre Formatlama

Merhaba,

Bu içeriğimizde sizlere C#’ta DateTime yapısından farklı olan ve elimizdeki bir değere göre süre tutmamızı sağlayan TimeSpan tipinden bahsedeceğim.

TimeSpan, DateTime gibi struct(yapı) olarak tasarlanmış bir süre temsil eden değişkendir.

        static void Main(string[] args)
        {
            TimeSpan time = new TimeSpan(3, 2, 17, 1, 12);
            Console.WriteLine(time);
            Console.Read();
        }

Yukarıdaki örnek kod bloğunu incelerseniz eğer 3 gün, 2 saat, 17 dakika, 1 saniye ve 12 milisaniye olarak bir süre tutabilir ve aşağıdaki gibi sonuç alabiliriz.

C# TimeSpan İle Süre Formatlama

        static void Main(string[] args)
        {
            TimeSpan time1 = TimeSpan.FromDays(5);
            TimeSpan time2 = TimeSpan.FromHours(4);
            TimeSpan time3 = TimeSpan.FromMinutes(3);
            TimeSpan time4 = TimeSpan.FromSeconds(2);
            TimeSpan time5 = TimeSpan.FromMilliseconds(1);
            TimeSpan time6 = TimeSpan.FromTicks(10);

            Console.WriteLine(time1);
            Console.WriteLine(time2);
            Console.WriteLine(time3);
            Console.WriteLine(time4);
            Console.WriteLine(time5);
            Console.WriteLine(time6);
            Console.Read();
        }

Yukarıdaki örnek kod bloğunun çıktısı ise aşağıdaki gibi olacaktır.
FromDays gün, FromHours saat, FromMinutes dakika, FromSeconds saniye ve FromMilliseconds milisaniye eklemek içindir.
C# TimeSpan İle Süre Formatlama

        static void Main(string[] args)
        {
            TimeSpan time1 = TimeSpan.FromDays(5);
            TimeSpan time2 = TimeSpan.FromHours(4);
            TimeSpan time3 = TimeSpan.FromMinutes(3);
            TimeSpan time4 = TimeSpan.FromSeconds(2);
            TimeSpan time5 = TimeSpan.FromMilliseconds(1);
            TimeSpan time6 = TimeSpan.FromTicks(10);

            TimeSpan time7 = time1.Add(time2).Add(time3).Add(time4).Add(time5).Add(time6);

            Console.WriteLine(time7);
            Console.Read();
        }

Bu şekilde Add metodu kullanılarak elimizdeki mevcut süreye herhangi bir zaman kavramını ekleyebilmekteyiz.
C# TimeSpan İle Süre Formatlama

        static void Main(string[] args)
        {
            TimeSpan time1 = TimeSpan.FromDays(5);
            TimeSpan time2 = TimeSpan.FromMinutes(4);
            TimeSpan time3 = time1.Subtract(time2);
            Console.WriteLine(time3);
            Console.Read();
        }

Subtract metodu sayesinde iki süre arasındaki farkı bulabilmekteyiz.
C# TimeSpan İle Süre Formatlama

        static void Main(string[] args)
        {
            Console.WriteLine(TimeSpan.MaxValue);
            Console.WriteLine(TimeSpan.MinValue);
            Console.WriteLine(TimeSpan.Zero);
            Console.Read();
        }

MaxValue, MinValue ve Zero propertyleri ile sırasıyla TimeSpan’ın alabileceği en büyük, en küçük ve sıfırlanmış değerleri elde edebilmekteyiz.
C# TimeSpan İle Süre Formatlama

        static void Main(string[] args)
        {
            Console.WriteLine(TimeSpan.TicksPerDay);
            Console.WriteLine(TimeSpan.TicksPerHour);
            Console.WriteLine(TimeSpan.TicksPerMinute);
            Console.WriteLine(TimeSpan.TicksPerSecond);
            Console.WriteLine(TimeSpan.TicksPerMillisecond);
            Console.Read();
        }

TimeSpan tiklerden oluştuğu için TicksPerDay ile her günün, TicksPerHour ile her saatin, TicksPerMinute ile her dakikanın, TicksPerSecond ile her saniyenin ve TicksPerMillisecond ile her milisaniyenin kaç tikten oluştuğunu görebiliriz.
C# TimeSpan İle Süre Formatlama

        static void Main(string[] args)
        {
            TimeSpan time1 = new TimeSpan(-1, -1, -25, -1, -1);
            Console.WriteLine(time1.Duration());
            Console.Read();
        }

Duration metodu ile elimizdeki zamanın mutlak değerini alabiliriz.
C# TimeSpan İle Süre Formatlama

        static void Main(string[] args)
        {
            TimeSpan time1 = new TimeSpan(3, 5, 7, 8, 9);
            Console.WriteLine("Gün = " + time1.Days);
            Console.WriteLine("Kalan Gün = " + time1.TotalDays);
            Console.WriteLine("Saat = " + time1.Hours);
            Console.WriteLine("Kalan Saat = " + time1.TotalHours);
            Console.WriteLine("Dakika = " + time1.Minutes);
            Console.WriteLine("Kalan Dakika = " + time1.TotalMinutes);
            Console.WriteLine("Saniye = " + time1.Seconds);
            Console.WriteLine("Kalan Saniye = " + time1.TotalSeconds);
            Console.WriteLine("Mili Saniye = " + time1.Milliseconds);
            Console.WriteLine("Kalan Mili Saniye = " + time1.TotalMilliseconds);
            Console.Read();
        }

Yukarıdaki kod bloğunu incelerseniz eldeki sürenin nicel olarak kavramsal zamanıyla birlikte, toplam yani kalan zamanınıda hesaplayabilmekteyiz. Çağırdığınız kavramın Total.. ile başlayan propertysi toplamı vermektedir.

C# TimeSpan İle Süre Formatlama

Evet, TimeSpan structı ile yukarıdaki zamansal işlemlerin hepsini performanslı bir şekilde gerçekleştirebilirsiniz.

Sonraki yazılarımızda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. Fatih Uyanık dedi ki:

    Hocam emek gösterip hazırladığınız için çok teşekkür ederim. Böyle türkçe bir kaynak olması çok güzel. Bazen docstan pek bir şey anlamıyorum. Bugünde benim iin öyle oldu. Emeklerinize sağlık. Allah razı olsun hocam.

Bir yanıt yazın

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