Как сравнить даты

192
19 апреля 2018, 09:49

Есть заранее известная дата. Например, есть некий документ от 01.03.2018, действителен до 01.05.2018. И есть текущая дата. Как можно проверить осталось ли меньше месяца до 01.05.2018 или больше месяца? Никак не соображу как это можно проверить.

Answer 1

Добавьте к сегодняшней дате один месяц и сравните получившийся результат с нужной датой. Добавить месяц можно с помощью метода AddMonth:

var date = new DateTime(2018, 5, 1);
if (DateTime.Today.AddMonths(1) > date)
    Console.WriteLine("Меньше месяца");
else
    Console.WriteLine("Больше месяца");

Это же условие можно переписать по другому, если вам это более понятно (если дата окончания минус 1 месяц уже прошла, то осталось меньше месяца):

if (DateTime.Today > date.AddMonths(-1)) ...

Ну и имейте ввиду, что обычно юристы устанавливают всевозможные сроки в сутках, т. к. месяцы в году имеют разную продолжительность, поэтому, возможно, правильнее будет использовать метод AddDays, например:

if (DateTime.Today.AddDays(30) > date) ...

или, то же самое:

if ((date - DateTime.Today).TotalDays < 30) ...
READ ALSO
Взаимодействие с двумя окнами MVVM C#

Взаимодействие с двумя окнами MVVM C#

Пробую освоить MVVM, дается очень тяжелоВ теории вроде понятно, а вот как на практике реализовать, не очень понимаю

179
Изменить под регулярные выражения

Изменить под регулярные выражения

Как заменить кучу Replace на регулярные выражения ?

169
Невозможно разрешить удалённое имя

Невозможно разрешить удалённое имя

Запускаю у себя - всё нормальноЗапускает друг - ошибка

180
Ошибка в Encoding.Unicode

Ошибка в Encoding.Unicode

Имею код:

197