2012-08-13 12 views
10

Potrzebuję bieżącego Datetime minus myDate1 w kilka sekund.Datetime.now jako wartość TimeSpan?

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

TimeSpan myDateResult = new TimeSpan(); 

myDateResult = myDate2 - myDate1; 

.
.
Próbowałem różnych sposobów obliczyć, ale bez skutku.

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

.
Sposób, w jaki jest obliczany, nie ma znaczenia, wyjście powinno być po prostu różnicą tych wartości w sekundach.

+1

Nie trzeba robić 'myDateResult = new TimeSpan();' - nie musisz mieć początkowego wyrażenia dla każdej zmiennej i/lub możesz uczynić inicjalizator następującym wyrażeniem. –

+2

@ user1559441, już obliczyłeś różnicę w TimeSpanie 'myDateResult', możesz użyć właściwości' TotalSeconds', aby uzyskać różnicę w sekundach – Habib

+1

tak, '.TotalSeconds' było odpowiedzią. dzięki – MrMAG

Odpowiedz

21

kod jest poprawny. Masz różnicę czasu jako wartość TimeSpan, więc trzeba tylko użyć właściwości TotalSeconds je zdobyć jak sekundach:

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

TimeSpan myDateResult; 

myDateResult = myDate2 - myDate1; 

double seconds = myDateResult.TotalSeconds; 
2

trzeba dostać .TotalSeconds własność swojego przedziału czasu:

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

Można użyć Subtract metody:

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

Kod:

TimeSpan myDateResult = DateTime.Now.TimeOfDay; 
+0

użyj znacznika kodu (dodaj 4 spacje przed linią kodu), sam go edytuję, ale jest to drobna zmiana, której system mi nie pozwala. –

+0

To powinna być zaakceptowana odpowiedź, ponieważ pasuje do 100% pytania na temat. –

Powiązane problemy