2010-09-28 9 views

risposta

34
var date1 = DateTime.Now; 
var date2 = new DateTime (1992, 6, 6); 

var seconds = (date1 - date2).TotalSeconds; 
+9

(int) (data1 - data2) .TotalSeconds impedirà l'utilizzo di frazioni di secondo. – ckg

12

Se si sottrae una data da un altro, restituisce un TimeSpan che ha una proprietà TotalSeconds. Quindi:

double seconds = (Date1 - Date2).TotalSeconds; 
+1

Secondi non corrisponde a TotalSeconds. –

+0

Ho pubblicato e modificato lì e poi. :) Grazie per l'attenzione però. – Yogesh

27

cosa si intende confrontare due valori DateTimefino al secondo? Se è così, si potrebbe desiderare qualcosa di simile:

private static DateTime RoundToSecond(DateTime dt) 
{ 
    return new DateTime(dt.Year, dt.Month, dt.Day, 
         dt.Hour, dt.Minute, dt.Second); 
} 

... 

if (RoundToSecond(dt1) == RoundToSecond(dt2)) 
{ 
    ... 
} 

In alternativa, per scoprire se i due DateTimes sono meno di un secondo l'uno dall'altro:

if (Math.Abs((dt1 - dt2).TotalSeconds) <= 1) 

Se nessuna di queste aiuto, si prega di dare più dettagli nella domanda.

+1

Mi piace il metodo RoundToSecond, rende molto chiaro cosa sta succedendo quando lo chiami –

2
DateTime start = DateTime.now; 
DateTime end = DateTime.end; 
TimeSpan dif = end - start; 

dif sarà del formato 0: 0: 0: 0 dove il terzo valore è secondi.