dimayakovlev.ru


Сколько дней до Нового года? Функция для PowerShell

Сколько дней до Нового года? Актуальный вопрос в преддверии наступления любимого праздника. Ранее уже оставлял заметку на тему как вычислить количество дней между двумя датами в PowerShell. Количество дней до Нового кода это частный случай, который заслуживает отдельной функции.

Для функции выбрал говорящее имя Get-DaysBeforeNewYear.

<#
.SYNOPSIS
    Number of days before the New Year
.DESCRIPTION
    Return number of days until the New Year from current date. Target year can be set via parameter
.PARAMETER Year
    Target year
.EXAMPLE
    Get-DaysBeforeNewYear
.EXAMPLE
    # Get number of days from current date to New Year 2024
    Get-DaysBeforeNewYear -Year 2024
#>
Function Get-DaysBeforeNewYear() {
    Param (
        [Parameter(Mandatory=$false)] [Int]$Year = (Get-Date).Year + 1
    )
    return (New-TimeSpan -Start (Get-Date) -End (Get-Date -Year $Year -Month 1 -Day 1)).Days
}

В функции используется командлет New-TimeSpan, который возвращает объект TimeSpan, представляющий временной интервал между заданными датами. Используя свойство Days объекта TimeSpan, функция Get-DaysBeforeNewYear возвращает целое количество дней между текущей датой и первым днём следующего или заданного в параметре -Year года.

Пример вызова функции Get-DaysBeforeNewYear без параметра и с параметром -Year

Для удобства вызова поместите код функции в любой из файлов профилей PowerShell и задайте псевдоним с помощью командлета Set-Alias.

Теперь в любой момент можно легко узнать сколько дней осталось до Нового года и успеть подготовиться к празднику.