#c# #asp.net #datetime #visual-studio-2012
#c# #asp.net #datetime #visual-studio-2012
Вопрос:
Я хочу каким-то образом указать время в моем Datetime.Now
so, например, я знаю, что
DateTime.Now.AddDays(-1);
получит дату за вчерашний день ровно 24 часа назад, но я хочу получить дату за вчерашний день в определенное время, например, 5 вечера.
Я не могу найти ничего полезного в связи с этим в StackOverflow, какие-либо предложения?
Комментарии:
1. Дата останется неизменной для вчерашнего дня каждый раз, когда вы переходите к AddDays, если вам нужно время, вы можете использовать время, которое вы уже знаете, например, 5 вечера
2. 1) Вы можете создать интервал времени для вычитания с настоящего момента до нужного вам времени, а затем добавить его в виде минут / часов или как вам больше нравится…;
Ответ №1:
Использовать:
DateTime.Now.Date.AddDays(-1).AddHours(17);
Комментарии:
1. Это (или ответ Нихила) должно было быть принято. Я сам предпочитаю однострочный вариант, но оба являются действительными ответами.
2. @dubbreak 15 голосов за явно неправильный ответ? Это возвращает время 7 часов назад.
Ответ №2:
Вы можете создать экземпляр TimeSpan
и удалить / добавить DateTime.Now
.
или
DateTime dt = DateTime.Now.AddDays(-1);
DateTime newdt = New DateTime(dt.Year, dt.Month, dt.Day, 17, 0, 0);
Комментарии:
1. 5 вечера, но кроме этого места на
2. @Liath: Готово. Спасибо.