2012-08-13 23 views
10

Necesito el Datetime actual menos myDate1 en segundos.Datetime.now como valor de TimeSpan?

DateTime myDate1 = new DateTime(1970, 1, 9, 0, 0, 00); 
DateTime myDate2 = DateTime.Now; 

TimeSpan myDateResult = new TimeSpan(); 

myDateResult = myDate2 - myDate1; 

.
.
He intentado diferentes formas de calcular, pero sin ningún efecto.

TimeSpan mySpan = new TimeSpan(myDate2.Day, myDate2.Hour, myDate2.Minute, myDate2.Second); 

.
La forma en que se calcula no importa, la salida debería ser la diferencia a valores en segundos.

+1

No es necesario hacer 'myDateResult = new TimeSpan();' - no necesita tener una expresión de inicialización para cada variable y/o puede hacer que el inicializador sea la siguiente expresión. –

+2

@ user1559441, ya ha calculado la diferencia en TimeSpan 'myDateResult', puede usar la propiedad' TotalSeconds' para obtener la diferencia en segundos – Habib

+1

sí, '.TotalSeconds' fue la respuesta. gracias – MrMAG

Respuesta

21

Su código es correcto. Usted tiene la diferencia de tiempo como un valor TimeSpan, por lo que sólo tiene que utilizar la propiedad TotalSeconds conseguirlo como segundos:

DateTime myDate1 = new DateTime(1970, 1, 9, 0, 0, 00); 
DateTime myDate2 = DateTime.Now; 

TimeSpan myDateResult; 

myDateResult = myDate2 - myDate1; 

double seconds = myDateResult.TotalSeconds; 
2

que necesita para obtener .TotalSeconds propiedad de su intervalo de tiempo:

DateTime myDate1 = new DateTime(2012, 8, 13, 0, 05, 00); 
DateTime myDate2 = DateTime.Now; 
TimeSpan myDateResult = new TimeSpan(); 
myDateResult = myDate2 - myDate1; 
MessageBox.Show(myDateResult.TotalSeconds.ToString()); 
1

Puede utilizar Subtract método:

DateTime myDate1 = new DateTime(1970, 1, 9, 0, 0, 00); 
DateTime myDate2 = DateTime.Now; 
TimeSpan ts = myDate2.Subtract(myDate1); 
MessageBox.Show(ts.TotalSeconds.ToString()); 
0
TimeSpan myDateResult; 

myDateResult = DateTime.Now.Subtract(new DateTime(1970,1,9,0,0,00)); 
myDateResult.TotalSeconds.ToString(); 
4

Código:

TimeSpan myDateResult = DateTime.Now.TimeOfDay; 
+0

por favor use el código de marcado (agregue 4 espacios antes de la línea de código), lo editaría yo mismo pero es un cambio tan pequeño que el sistema no me lo permite. –

+0

Esta debería ser la respuesta aceptada, ya que coincide 100% con la pregunta del tema. –