我正在拧一个PowerShell打印即将到来的4个星期五的日期。
$date = Get-Date
for ($num = 1 ; $num -le 4 ; $num++){
while ($Date.DayOfWeek -ne "Friday") {$date = $date.AddDays($num)}
$datestr = $date.ToString('dd-MM-yyyy')
echo $datestr
$SomeVar = "Friday - " + $num + " - " + $datestr
echo $SomeVar
} 产出:
04-11-2022
Friday - 1 - 04-11-2022
04-11-2022
Friday - 2 - 04-11-2022
04-11-2022
Friday - 3 - 04-11-2022
04-11-2022
Friday - 4 - 04-11-2022在这里,我可以打印即将到来的星期五的单一日期。但是,我想打印即将到来的4个星期五的日期。
你能帮我解决我错过什么或任何更好的方式打印日期即将到来的特定的一天。
谢谢。
发布于 2022-10-29 15:00:38
你把事情搞得太难了。
试一试
# skip if today happens to be a Friday too, because you want 'upcoming'
$date = (Get-Date).AddDays(1)
# while $date is not a Friday, keep adding days to it
while ($date.DayOfWeek -ne 'Friday') { $date = $date.AddDays(1) }
# next output the 4 upcoming Fridays
for ($i = 1; $i -le 4; $i++) {
Write-Host "$($date.DayOfWeek) - $i - $($date.ToString('dd-MM-yyyy'))"
$date = $date.AddDays(7)
}输出:
Friday - 1 - 04-11-2022
Friday - 2 - 11-11-2022
Friday - 3 - 18-11-2022
Friday - 4 - 25-11-2022发布于 2022-10-29 12:56:58
您的日期变量将被替换为字符串变量。考虑命名新变量以反映它包含的内容:
$dateStr = $date.ToString('dd-MM-yyyy')发布于 2022-10-30 23:04:19
# Determine the input date.
$date = Get-Date
# Find the next Friday relative to the input date (which may be that date itself).
$nextFriday = $date.AddDays(([DayOfWeek]::Friday - $date.DayOfWeek + 7) % 7)
# Output the next Friday plus the 3 ones after that (4 in total).
0..3 | ForEach-Object { $nextFriday.AddDays(7 * $_) }上面的输出输出[datetime]实例,您可以根据需要格式化这些实例。
https://stackoverflow.com/questions/74245449
复制相似问题