İki zaman arasındaki farkı saniye cinsinden kontrol edin


111

Merhabalar Şu anda, belirli bir olayın meydana geldiği zaman, olayın meydana geldiği zaman dahil olmak üzere olayla ilgili ayrıntıların bir liste dizisine eklendiği bir proje üzerinde çalışıyorum.

Yöntem bittiğinde, listeyi değerlerini kontrol eden başka bir yönteme aktarıyorum. Döngüden geçmeden önce bilgisayarımın o anki saatini kontrol ediyorum ve liste dizisinde kaydedilen zaman ile mevcut saat arasındaki farkın 5 saniyeden fazla olup olmadığını kontrol etmem gerekiyor.

Bunu nasıl yapacağım?

Yanıtlar:


282

Varsayım dateTime1ve değerler dateTime2şunlardır DateTime:

var diffInSeconds = (dateTime1 - dateTime2).TotalSeconds;

Sizin durumunuzda, DateTime.Nowlistedeki değerlerden biri ve diğeri olarak zamanı kullanırsınız. dateTime1Daha erken olursa sonuç negatif olabileceğinden sipariş konusunda dikkatli olun dateTime2.


3
Teşekkürler, bu arada, değişken iki katına çıkacak: TotalSeconds
Loaderon

3
Teşekkürler ... Gerçekten (Toplam Milisaniye) kullanmam gerekirken yanlışlıkla (Milisaniye) kullanarak ısırıldım ... ah.
andrew pate


16

Bu sürüm her zaman saniye farkını pozitif bir sayı olarak döndürür (@ freedeveloper'in çözümüyle aynı sonuç):

var seconds = System.Math.Abs((date1 - date2).TotalSeconds);

4

Negatif aralığı önlemek için bunu kullanıyorum.

var seconds = (date1< date2)? (date2- date1).TotalSeconds: (date1 - date2).TotalSeconds;

5
Math.AbsBunun yerine kullanın , bu kod sadece yukarıdaki yanıtı kullanmaktan daha az okunabilir ve performanslıdır.
ProgramFast
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.