如何将两个日期之间的所有日期添加到powershell中的数组

时间:2014-10-28 21:39:18

标签: date powershell

我试图弄清楚如何将2014年8月27日到10月27日之间的所有日期添加到yyyyMMdd格式的数组中。有人可以指出我正确的方向。

5 个答案:

答案 0 :(得分:3)

谢谢你们,我一如既往地在论坛上发布了一个想法。这似乎适用于我需要的东西。

$startDate = Get-Date 08-27-14
$endDate = Get-Date 10-27-14
while($startDate -le $endDate){
$nextDate = Get-Date $startDate -format yyyyMMdd
write-host $nextDate
$startDate = $startDate.AddDays(1)
}

答案 1 :(得分:1)

这样的事情应该有效:

$date = [datetime]'08/27/2014'

 $array = 
   do {
       $date.ToString('MM/dd/yy')
       $date = $date.AddDays(1)
      }

    until ($date -gt [datetime]'10/27/2014')

答案 2 :(得分:1)

替代方案:

$ts = New-TimeSpan -Start (Get-Date -Year 2014 -Month 08 -Day 27) -End (Get-Date -Year 2014 -Month 10 -Day 27)
for ($i = 1; $i -le $ts.Days; $i++) {[array]$dates += ((Get-Date -Year 2014 -Month 08 -Day 27).AddDays($i))}

答案 3 :(得分:0)

为此。我用这个做了一个功能

function New-DateArray {

    Param(
        [Parameter(Mandatory = $True)]
        [DateTime]$StartDate,
        [Parameter(Mandatory = $True)]
        [DateTime]$EndDate
    )

    [Array]$DateArray = @()

    while ((Get-Date $StartDate.tostring('yyyy-MM-dd')) -lt (Get-Date $EndDate.tostring('yyyy-MM-dd'))){
        $NextDate = Get-Date $StartDate
        $DateArray += $NextDate
        $startDate = $startDate.AddDays(1)
    }

    $DateArray += $EndDate

    Return $DateArray
}

答案 4 :(得分:0)

$start = Get-Date '2014-08-27'
$end   = Get-Date '2014-10-27'

$dates = for ($date = $start; $date -le $end; $date = $date.AddDays(1)) {
    $date.ToString('yyyyMMdd')
}

似乎越干净越好。