PowerShell:
Расчет даты в будущем или прошлом
Как это сделать:
Добавить дни к текущей дате:
# Добавить 10 дней к сегодняшней дате
$newDate = (Get-Date).AddDays(10)
Write-Output $newDate
Пример вывода:
Четверг, 13 апреля 2023 года
Вычесть дни из текущей даты:
# Вычесть 15 дней из сегодняшней даты
$pastDate = (Get-Date).AddDays(-15)
Write-Output $pastDate
Пример вывода:
Среда, 20 марта 2023 года
Рассчитать разницу между двумя датами:
# Разница между двумя датами
$date1 = Get-Date '2023-04-01'
$date2 = Get-Date '2023-04-15'
$diff = $date2 - $date1
Write-Output $diff.Days
Пример вывода:
14
Подробнее
Когда-то программистам приходилось вручную вычислять даты, используя сложные алгоритмы. Теперь языки программирования, такие как PowerShell, предоставляют встроенные функции, такие как AddDays
, AddMonths
, что делает этот процесс почти тривиальным.
Альтернативы:
Хотя AddDays
удобен, существуют также функции, такие как AddHours
, AddMinutes
и т. д., для более детального контроля. Кроме того, вы можете использовать [datetime]::Today.AddDays(10)
, если предпочитаете статический подход.
Детали реализации:
Объект DateTime
в PowerShell имеет эти методы встроенные, так что вам не приходится изобретать велосипед. Под капотом он обрабатывает все виды сложностей, такие как високосные годы и корректировки перехода на летнее/зимнее время за вас.
Смотрите также
- Официальная документация PowerShell по методам
DateTime
: Microsoft Docs - Методы DateTime - Больше о арифметике дат в PowerShell: Арифметика дат в PowerShell
- Для погружения в историю и тонкости систем календарей, актуальных для вычислений дат: ЧаВо о календарях