Этот код выполняет извлечение части даты (т.е. удаление части времени) и использование свободной природы VB, чтобы позволить дате, представленной в виде строки, неявно преобразовываться обратно в дату для сравнения с фактической датой..
Правильный способ удалить часть времени - проверить следующее:
_nextContactDate.Date > new DateTime(1900, 1, 1)
Это кажется странным, поскольку это означает, что 1 января 1900 года эта проверка не пройдена, и толькодаты со 2 января 1900 года пройдут.Поэтому я был бы склонен проверить, есть ли в этом коде логическая ошибка.