2010-09-28 15 views

Respuesta

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

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

(int) (date1 - date2) .TotalSeconds evitará que se utilicen fracciones de segundos – ckg

12

Si se resta una fecha de otra, devuelve un TimeSpan que tiene una propiedad TotalSeconds. Por lo tanto:

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

Segundos no es lo mismo que TotalSeconds. –

+0

Publiqué y edité allí y luego. :) Gracias por señalar sin embargo. – Yogesh

27

Qué quiere decir la comparación de dos valores DateTimehasta el segundo? Si es así, es posible que desee algo como:

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)) 
{ 
    ... 
} 

Alternativamente, para averiguar si los dos DateTime están dentro de un segundo de diferencia:

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

Si ninguno de estos ayuda, por favor dar más detalles en la pregunta.

+1

Me gusta el método RoundToSecond, deja muy claro lo que sucede cuando lo llamas –

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

dif tendrá la forma 0: 0: 0: 0 donde el tercer valor es segundos.