2014-06-16 11 views
5

Chcę jakoś określić czas w moim Datetime.Now tak na przykład wiem, żeDateTime.Now.AddDays (-1) otrzyma datę-czas dokładnie 24 godziny temu, ale jak uzyskać czas na wczoraj o określonej godzinie?

DateTime.Now.AddDays(-1); 

dostanie datę wczoraj dokładnie 24 godziny temu, ale chcę, aby uzyskać datę wczoraj w określonym czasie, na przykład 17.00.

Nie mogę znaleźć nic przydatnego w związku z tym na StackOverflow, żadnych sugestii?

+0

data pozostanie taka sama dla wczoraj co za każdym razem przechodzą do AddDays, jeśli chcesz czas wtedy możesz użyć czasu znanego już jako godzina 17:00 – Adil

+0

1) Możesz utworzyć przedział czasowy odejmowania od teraz aż do CZASU, który chcesz, a następnie dodać go jako minuty/godziny lub cokolwiek chcesz ...; – HellBaby

Odpowiedz

6

Można utworzyć instancję TimeSpan i usunąć/dodać w DateTime.Now.

LUB

DateTime dt = DateTime.Now.AddDays(-1); 

DateTime newdt = New DateTime(dt.Year, dt.Month, dt.Day, 17, 0, 0); 
+0

5pm, ale poza tym miejscem na – Liath

+0

@Liath: Gotowe. Dzięki. –

+1

Jedyna poprawna odpowiedź tutaj. –

14

Zastosowanie:

DateTime.Now.Date.AddDays(-1).AddHours(17); 
+1

Ta (lub odpowiedź Nikhila) powinna zostać zaakceptowana. Wolę sam wykład, ale obie są poprawnymi odpowiedziami. – dubbreak

+0

@dubbreak 15 upvotes dla oczywiście zła odpowiedź? To dostaje czas 7 godzin temu. –

-1

Utwórz nową instancję z

new DateTime(DateTime.Now.Date) 

EDIT: Ten konstruktor nie istnieje; Po prostu wykonaj: DateTime dt = DateTime.Now.Date;

ten będzie miał część czas ustawiony 00:00:00 Następnie można wywołać AddHours, AddMinutes itp

+1

'new DateTime (DateTime.Now.Date)' nie kompiluje się. Nie ma konstruktora 'DateTime', który zajmuje tylko' DateTime' jako argument - i byłoby to w każdym razie bezcelowe. – CodesInChaos

Powiązane problemy