Найдите третью субботу месяца - PullRequest
1 голос
/ 06 августа 2020

Мне нужно найти дату третьей субботы месяца.

У меня есть следующая функция, которая находит последнюю субботу месяца

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

Однако , Я не знаю, как отредактировать его, чтобы найти третью субботу месяца.

Прямо сейчас функция переходит с последней даты месяца на субботу, которая предшествует ей. Но если я хочу третью субботу, я думаю, мне нужно рассчитывать с первого дня месяца, а не с последнего.

1 Ответ

2 голосов
/ 06 августа 2020

На основе решения от Brandon , поскольку третья суббота не может наступить раньше 15 числа месяца, мы можем увеличивать с 15 до тех пор, пока не найдем субботу:

$thirdSaturday = [DateTime]::new((Get-Date).Year,(Get-Date).Month,15)
while ($thirdSaturday.DayOfWeek -ne [DayOfWeek]::Saturday) 
{
    $thirdSaturday = $thirdSaturday.AddDays(1)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...