TimeSpan ile şu kadar saniye, dakika, saat ve gün olayı

TimeSpan iki zaman arasındaki farkı bize veren bir fonksiyon. Kullanımıda
gerçekten çok basit. İşlemin sonunda bize milisaniye, saniye, dakika, saat ve gün değerlerini double tipinde geri döndürüyor.
Facebook, friendfeed veya twitter gibi sitelerde, bu içerik bir kaç saniye önce
eklendi yada 5 saat önce yüklendi gibi mesajları görmüşsünüzdür, TimeSpan
kullanarak bu işlemin nasıl yapıldığına bir göz atalım.

protected void Page_Load(object sender, EventArgs e)
{
    DateTime hesaplanacakZaman = new DateTime(2010, 05, 15, 21, 23, 00);
    Response.Write(neZaman(hesaplanacakZaman));
}

public string neZaman(DateTime d) {
    TimeSpan tS = DateTime.Now-d;
    int dakika = (int)tS.TotalMinutes;
    int saat = (int)tS.TotalHours;
    int gun = (int)tS.TotalDays;
    string strTemp;
    if (dakika < 1)
    {
        strTemp = "bir kaç saniye önce";
    }
    else if (dakika < 60)
    {
        strTemp = dakika+" dakika önce";
    }
    else if (saat < 24)
    {
        strTemp = saat+" saat önce";
    }
    else
    {
        strTemp = gun+" gün önce";
    }
    return strTemp;
}

Gördünüz gibi gayet basit ve anlaşılır bir yöntem. Sonraki yazıda görüşmek üzere hoşçakalın..

  • yns.emre

    performans değerlendirmeleri yapan arkadaşların sık sık kullandığı bir kod , çok kullanışlı güzel bir özellik TimeSpan , emeğine sağlık..

  • http://www.renkhane.com yirmiuc

    eyw. Abdullah aynen alıyorum :)

  • garpi

    Aldığın yerde “Gördünüz gibi gayet basit ve anlaşılır bir yöntem.” yazdığı için mi sen de “Gördünüz gibi gayet basit ve anlaşılır bir yöntem.” yazdın :)

    “DateTime hesaplanacakZaman = new DateTime(2010, 05, 15, 21, 23, 00);” satırını açıklar mısın !

    Tarih kısımları bir değişkenden yada kullanıcıdan istenebilir olmalı bence. Bu tip kodlar prof. arkadaşlaın elinde her daim bulunur ama amatör bir geliştirici için “Gördünüz gibi gayet basit ve anlaşılır bir yöntem.” DEĞİL kanımca..

    • apoStyLEE

      Sabah sabah iyi güldürdünüz, teşekkürler. O satırın neyini açıklayayım, sizde onu açıklar mısınız ? Birde aldığın yer derken neyi kastettiniz anlayamadım ? Sadece if lerden oluşan bu basit örneği anlayamamak sizin kendi probleminiz diye düşünüyorum, kusura bakmayın ama bu kadar basit bir şeyi uzun uzadıya anlatmak akıl kârı bir durum değil ;)

    • http://.. yns.emre

      garpi işkembeden sallamışsın galiba,git msdn den bak datetime fonksiyonunun aldığı parametrelere, araştırmak bu kadar zor mu , alışmayın böyle hazıra..

    • umut

      İyi güldüm ha :) adam sana onu açıklamak zorunda mı arkadaşım. oraya kendine göre parametre yerleştiremeyecek kadar amatör bir programcı isen önce git teorik bilgilerini pekiştir. Daha kodları anlayacak kapasiteye gelmemişsin.