2011-11-01 10 views

Odpowiedz

27

Chcesz DateTime.Today.AddHours(16)

DateTime.Today zwróci dzisiejszą datę o północy. Można również użyć właściwości Date, aby usunąć czas z dowolnej wartości:

+0

Co się dzieje o 1 w nocy, kiedy zostanie to uruchomione? Wygląda na to, że ustawi czas na następny dzień o 4 rano. Nie wydaje mi się to w porządku – Cole9350

+2

@ Cole9350: Nie; wróci 4 PM. – SLaks

3
var anotherTime = DateTime.Today.AddHours(16.0); 
11

myślę, że powinien zrobić to, czego potrzebujesz ...

DateTime now = DateTime.Now; 
DateTime dt = new DateTime(now.Year, now.Month, now.Day, 16, 0, 0); 
+2

To jest 4 rano, a nie PM. –

+0

@AnthonyPegram: Pozdrawiam, nienawidzę tego, kiedy to się dzieje (mózg/palce nie zsynchronizowane) – musefan

2

Spójrz na wszystkich overloaded constructors dla DateTime.

DateTime myDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 16, 0, 0); 

Edytuj: Korekta. Dzięki Jon. :)

+1

Przeciążone, nie nadpisane. Konstruktory nie mogą zostać nadpisane, ponieważ nie są na początku polimorficzne. –

+1

Co się stanie, jeśli zostanie uruchomiona tak blisko północy, że pierwsze dzisiejsze połączenie będzie inne niż jedno z następnych? – musefan

+0

@musefan: Sądzę, że wszystko może się zdarzyć. Ale OP powiedział * dzisiaj * o północy, więc jeśli ten kod zostanie uruchomiony o 23:59, to nadal będzie zapisywać dzisiejszą datę o 16.00. Możesz najpierw zapisać DateTime.Today w osobnej zmiennej i wskazać to. Lub możesz po prostu użyć przykładu SLaks, który i tak lubię bardziej. –

Powiązane problemy