Яковлев


Количество дней между датами в PowerShell

У каждого возникали ситуации, когда требовалось посчитать количество дней между двумя датами. К примеру, чтобы узнать количество оставшихся дней до нового года, дня рождения, сдачи курсовой работы, наступления каникул, возврата книги в библиотеку и т.п.

Безусловно, можно сделать это вручную при помощи карманного календаря, можно воспользоваться стандартным калькулятором Microsoft Windows, который обладает такой функцией, даже можно установить дополнительное программное обеспечение, вроде планировщика задач – вариантов решения масса.

Но если необходимо автоматизировать выполнение этой задачи или хочется найти повод, чтобы в очередной раз запустить PowerShell? Всё просто: используем командлет New-TimeSpan.

Для примера, определим количество дней, оставшееся до дня рождения Бориса Гребенщикова, рождённого по официальным данным 27 ноября 1953 года, чтобы успеть подготовить и отправить ему поздравительную открытку:

(New-TimeSpan -Start $(Get-Date) -End $(Get-Date -Month 11 -Day 27 -Year 2016)).TotalDays

Кстати, если в качестве даты начала отсчёта используется текущее время, то параметр -Start можно опустить.