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)

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
{ <#
Find out all the dates inbetween the range of dates you specify
Simple function to return an array of date/time objects for all days inbetween the two dates
you specify.
Start date – this specifies the beginning of your range
End date – this specifies the ending of your range. This date can be before OR after the Start
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.
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.
Author: Martin Pugh
Twitter: @thesurlyadm1n
Spiceworks: Martin9700
1.0 Initial Release
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 | | 1 Comment