Присвоить значение datetime сегодняшней дате с определенным временем

#c# #datetime

#c# #datetime

Вопрос:

У меня есть переменная, которая определяется как DateTime . Мне нужно назначить ему сегодняшнюю дату, но время должно быть 4 часа дня. Как мне это сделать?

Ответ №1:

Вы хотите DateTime.Today.AddHours(16)

DateTime.Today вернет сегодняшнюю дату в полночь.
Вы также можете использовать Date свойство для удаления времени из произвольного DateTime значения.

Комментарии:

1. Итак, что происходит в 1 час ночи, когда это выполняется? Похоже, что он установит время на следующий день в 4 часа утра. Мне это не кажется правильным

2. @Cole9350: Нет; он вернет 4 часа дня.

Ответ №2:

Я думаю, это должно сделать то, что вам нужно…

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

Ответ №3:

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

Ответ №4:

Взгляните на все перегруженные конструкторы для DateTime.

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

Редактировать: исправление. Спасибо, Джон. 🙂

Комментарии:

1. Перегружено, не переопределено. Конструкторы нельзя переопределить, поскольку они изначально не являются полиморфными.

2. Что, если это выполняется так близко к полуночи, что первый вызов Today отличается от одного из последующих?