Как получить все дни текущего месяца с помощью PowerShell: 3 метода

Чтобы получить все дни текущего месяца с помощью PowerShell, вы можете использовать следующие методы:

Метод 1: использование командлета Get-Date и циклический перебор дней

$currentMonth = Get-Date -Format "MM"
$currentYear = Get-Date -Format "yyyy"
$daysInMonth = [System.DateTime]::DaysInMonth($currentYear, $currentMonth)
for ($day = 1; $day -le $daysInMonth; $day++) {
    $date = Get-Date -Year $currentYear -Month $currentMonth -Day $day
    Write-Output $date.DayOfWeek
}

Метод 2: использование класса [System.Globalization.DateTimeFormatInfo]

$currentMonth = Get-Date -Format "MM"
$currentYear = Get-Date -Format "yyyy"
$dateTimeInfo = [System.Globalization.DateTimeFormatInfo]::CurrentInfo
$daysInMonth = $dateTimeInfo.Calendar.GetDaysInMonth($currentYear, $currentMonth)
for ($day = 1; $day -le $daysInMonth; $day++) {
    $date = Get-Date -Year $currentYear -Month $currentMonth -Day $day
    Write-Output $date.DayOfWeek
}

Метод 3. Использование структуры [System.DateTime] и метода AddDays

$currentMonth = Get-Date -Format "MM"
$currentYear = Get-Date -Format "yyyy"
$daysInMonth = [System.DateTime]::DaysInMonth($currentYear, $currentMonth)
$startDate = Get-Date -Year $currentYear -Month $currentMonth -Day 1
for ($day = 0; $day -lt $daysInMonth; $day++) {
    $date = $startDate.AddDays($day)
    Write-Output $date.DayOfWeek
}