powershell - 查找该月的第三个星期六

标签 powershell

我需要找到该月的第三个星期六的日期。
我有以下功能,可以找到该月的最后一个星期六

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)
    }
}
但是,我不知道如何编辑它以查找该月的第三个星期六。
现在,该功能从该月的最后一个日期到其之前的星期六。但是,如果我想要第三个星期六,我想我需要从该月的第一天开始计算,而不是从最后一天开始计算。

最佳答案

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

关于powershell - 查找该月的第三个星期六,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63280140/

相关文章:

powershell - 任务计划程序执行脚本但不输出到日志文件

powershell - 任务计划未执行可通过任务计划程序(Windows10)手动运行的Powershell脚本

powershell - 如何终止变量扩展以在 Powershell 中创建字符串

powershell - 使用 PowerShell 从包含空格的目录运行 EXE 文件

csv - CSV附加普通的字符串/文本行

powershell - 如何模拟 Pester 的工作?

powershell - 使用可能指定或未指定的参数运行内置 cmdlet

powershell - 尝试从Powershell脚本运行旧版可执行文件

powershell - Powershell仅排除文件

perl - Powershell主机文件编辑