我需要找到一个月的第三个星期六的日期。
我有以下功能,可以找到我本月的最后一个星期六
function Get-3rdSaturdayOfMonth {
$Date = Get-Date
$lastDay = new-object DateTime($Date.Year, $Date.Month, [DateTime]::DaysInMonth($Date.Year, $Date.Month))
$diff = ([int] [DayOfWeek]::Saturday) - ([int] $lastDay.DayOfWeek)
if ($diff -ge 0) {
return $lastDay.AddDays(- (7-$diff))
}
else {
return $lastDay.AddDays($diff)
}
}
但是,我不知道如何对其进行编辑以找到该月的第三个星期六。
现在,该功能从该月的最后一个日期到该日期之前的星期六。但是,如果我想要第三个星期六,我想我需要从一个月的第一天开始计算,而不是从最后一天开始计算。
答案 0 :(得分:2)
基于solution from Brandon,由于第三个星期六不可能在每月的15号之前发生,因此我们可以从15号开始递增,直到找到一个星期六:
$thirdSaturday = [DateTime]::new((Get-Date).Year,(Get-Date).Month,15)
while ($thirdSaturday.DayOfWeek -ne [DayOfWeek]::Saturday)
{
$thirdSaturday = $thirdSaturday.AddDays(1)
}