我目前正在为备份磁带编写一个PowerShell脚本,并试图计算磁带的返回日期。磁带会在星期五被我们的供应商拿回来。保留时间分别为4周、12个月和3年。每月的磁带会在这个月的第一个星期一出现,所以我现在用的是一个每月的磁带,从现在起12个月后会返回。我如何计算从2021年10月10日星期五开始的12个月,但确保返回日期也是一个星期五?
#Calculate Friday - Vaulting Date
$Friday = (Get-Date).AddDays(5-((Get-Date).DayOfWeek.value__)).ToString("MM/dd/yyyy")
#Calculate Return Dates
$Weekly = (Get-Date).AddDays(5-((Get-Date).DayOfWeek.value__)).AddDays(28).ToString("MM/dd/yyyy")
$Monthly = (Get-Date).AddDays(5-((Get-Date).DayOfWeek.value__)).AddMonths(12).ToString("MM/dd/yyyy")
$Yearly = (Get-Date).AddDays(5-((Get-Date).DayOfWeek.value__)).AddYears(3).ToString("MM/dd/yyyy")$Monthly目前返回10/08/2022年,也就是我想要的日期之后的星期六。我猜想$Yearly也会遇到同样的问题,如果是闰年呢?任何援助都将不胜感激。
发布于 2021-10-05 14:03:02
第一,加上一年:
$date = Get-Date 10/08/2021
$date = $date.AddYears(1)然后一次只加一天,直到你到达星期五为止:
while($date.DayOfWeek -ne 'Friday'){
$date = $date.AddDays(1)
}最后,转换为所需的字符串格式(在计算完日期之前不要转换为字符串,您将无法对其进行日期时间计算: ):
$date.ToString('MM/dd/yyyy')https://stackoverflow.com/questions/69451856
复制相似问题