За чем вы следуете - это номер недели ISO8601, где
- неделя начинается в понедельник
- неделя 1 - это первая неделя, которая содержит четверг
Чтобы получить этот номер недели, вы можете использовать следующую функцию:
function Get-Iso8601WeekNumber([datetime]$DateTime = (Get-Date)) {
# ISO8601: Week starts on Monday and Week 1 is the week that contains Thursday
$calendar = [CultureInfo]::InvariantCulture.Calendar
$dow = $calendar.GetDayOfWeek($DateTime)
if ($dow -ge [DayOfWeek]::Monday -and $dow -le [DayOfWeek]::Wednesday) {
$DateTime = $DateTime.AddDays(3)
}
return $calendar.GetWeekOfYear($DateTime, [Globalization.CalendarWeekRule]::FirstFourDayWeek, [DayOfWeek]::Monday)
}
Используя ваш пример
Get-Iso8601WeekNumber "2020-02-17"
возвращает 8
Обратите внимание на использование InvariantCulture
вместо CurrentCulture