2012-08-13 13 views
10

Ho bisogno del Datetime corrente meno myDate1 in secondi.Datetime.now come valore TimeSpan?

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

TimeSpan myDateResult = new TimeSpan(); 

myDateResult = myDate2 - myDate1; 

.
.
Ho provato diversi modi per calcolare ma senza alcun effetto.

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

.
Il modo in cui viene calcolato non ha importanza, l'output dovrebbe essere la differenza rispetto ai valori in secondi.

+1

Non è necessario fare 'myDateResult = new TimeSpan();' - non è necessario avere un'espressione di inizializzazione per ogni variabile e/o si potrebbe rendere l'inizializzatore la seguente espressione. –

+2

@ user1559441, hai già calcolato la differenza in TimeSpan 'myDateResult', puoi usare la proprietà' TotalSeconds' per ottenere la differenza in secondi – Habib

+1

sì, '.TotalSeconds' era la risposta. grazie – MrMAG

risposta

21

Il vostro codice è corretto. Avete la differenza di tempo come valore TimeSpan, quindi è sufficiente utilizzare la proprietà TotalSeconds per farlo come secondi:

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

TimeSpan myDateResult; 

myDateResult = myDate2 - myDate1; 

double seconds = myDateResult.TotalSeconds; 
2

è necessario per ottenere .TotalSeconds proprietà del periodo:

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

È possibile utilizzare il metodo Subtract:

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

Codice:

TimeSpan myDateResult = DateTime.Now.TimeOfDay; 
+0

per favore usa il codice markup (aggiungi 4 spazi prima della riga di codice), lo modificherei da solo ma è un così piccolo cambiamento che il sistema non mi permetterà. –

+0

Questa dovrebbe essere la risposta accettata, poiché corrisponde al 100% alla domanda dell'argomento. –