C # DateTime - Как проверить, что часть времени равна NULL? - PullRequest
15 голосов
/ 09 сентября 2011

Есть ли простой способ проверить, является ли временная часть значения DateTime NULL, кроме проверки часов, равной 0, мин. 0 и секунд 0?

Спасибо.

Ответы [ 4 ]

17 голосов
/ 19 февраля 2015

Я нахожу это очень читабельным:

var isTimeNull = (myDateTime.TimeOfDay == TimeSpan.Zero);
15 голосов
/ 09 сентября 2011

Вот мои дубли:

var isTimeNull = myDateTime.Date == myDateTime;
var isTimeNull = myDateTime.TimeOfDay.TotalSeconds == 0;

И технически время не равно нулю, просто оно не установлено.

1 голос
/ 09 марта 2018

DateTime не поддерживает концепцию null только для компонента времени.Либо весь объект DateTime является нулевым (если используется версия с нулевым значением), либо дата и время не равны нулю.Если вы не укажете компонент времени, по умолчанию будет 0 (полночь).

1 голос
/ 23 января 2015

Чтобы избежать делений и проблем с плавающей запятой, используйте:

var isMidnight = myDateTime.TimeOfDay.Ticks == 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...