Quick Script: Date Ranges
Ever need to get an array of all the days between two dates? This script will calculate the date range and load up an array with date/time objects for every date in between the entered times:
Function Get-DateRange | |
{ [CmdletBinding()] | |
Param ( | |
[datetime]$Start = (Get-Date), | |
[datetime]$End = (Get-Date) | |
) | |
ForEach ($Num in (0..((New-TimeSpan –Start $Start –End $End).Days))) | |
{ $Start.AddDays($Num) | |
} | |
} |
To use it, simply call the function
- Get-DateRange
- Get-DateRange -Start 7/24/14 -End 8/1/14
- Get-DateRange -End 7/20/14
And just to pretty it up as a Function and with comment-based help:
Function Get-DateRange | |
{ <# | |
.SYNOPSIS | |
Find out all the dates inbetween the range of dates you specify | |
.DESCRIPTION | |
Simple function to return an array of date/time objects for all days inbetween the two dates | |
you specify. | |
.PARAMETER Start | |
Start date – this specifies the beginning of your range | |
.PARAMETER End | |
End date – this specifies the ending of your range. This date can be before OR after the Start | |
date. | |
.INPUTS | |
None | |
.OUTPUTS | |
[DateTime[]] | |
.EXAMPLE | |
Get-DateRange -Start 7/24/14 -End 7/1/14 | |
Get all of the dates between the 24th to the 1st in reverse order. 24 DateTime objects will | |
be returned. | |
.EXAMPLE | |
Get-DateRange -End 8/1/14 | |
Get all of the dates between today and 8/1/14. As of 7/14/14 that would be 8 dates. | |
.NOTES | |
Author: Martin Pugh | |
Twitter: @thesurlyadm1n | |
Spiceworks: Martin9700 | |
Blog: http://www.thesurlyadmin.com | |
Changelog: | |
1.0 Initial Release | |
.LINK | |
#> | |
[CmdletBinding()] | |
Param ( | |
[datetime]$Start = (Get-Date), | |
[datetime]$End = (Get-Date) | |
) | |
ForEach ($Num in (0..((New-TimeSpan –Start $Start –End $End).Days))) | |
{ $Start.AddDays($Num).Date | |
} | |
} |
No comments yet.
Leave a Reply