The Surly Admin

Father, husband, IT Pro, cancer survivor

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)
}
}

view raw
Get-DateRange.ps1
hosted with ❤ by GitHub

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
}
}

July 25, 2014 - Posted by | PowerShell |

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: