Private/Get-YtdMonthlyDateRanges.ps1
function Get-YtdMonthlyDateRanges { param ( [datetime]$Date = (Get-Date), [string]$Format = 'yyyy-MM-dd' ) $Year = $Date.Year $Month = Get-Date -Month 12 -Day 1 -Year ($Year-1) $Ranges = @{} while ($Month -lt (Get-Date $Date -day 1)) { $Month = $Month.AddMonths(1) $Range = @{ 'begin' = Get-Date $Month -Format $Format 'end' = Get-Date ($Month.AddDays([DateTime]::DaysInMonth($Year, $Month.Month) - 1)) -Format $Format } $Ranges.Add((Get-Date $Month -Format MMMMMMMMM), $Range) } Write-Output $Ranges } |