












对于其他编程语言,如python,都可以很轻松的通过给定的一个日期,计算出他属于那一个年份的那一个周数
不过对于Powershell 需要自己多写几步,才能计算出来,因为没有直接内置的的方法或者函数
这里我们通过如下Powershell脚本代码、将指定的日期 xxxx-xx-xx 转换成 年份周数 的格式
$MyDate = '2021-01-01' # Author:QQ-5201351 $DateObj = [datetime]::ParseExact($MyDate, 'yyyy-MM-dd', [System.Globalization.CultureInfo]::InvariantCulture) # 获取该日期是星期几(Monday=1, ..., Sunday=7) $dayOfWeek = [int]$DateObj.DayOfWeek if ($dayOfWeek -eq 0) { $dayOfWeek = 7 } # 将 Sunday 从 0 改为 7 # 计算本周的星期四(Thursday 是 4) $thursdayOffset = 4 - $dayOfWeek $thursday = $DateObj.AddDays($thursdayOffset) # ISO 年份 = 星期四所在的公历年份 $isoYear = $thursday.Year # 使用 GregorianCalendar 计算周数(基于 Monday + FirstFourDayWeek) $calendar = [System.Globalization.GregorianCalendar]::new() $isoWeek = $calendar.GetWeekOfYear( $DateObj, [System.Globalization.CalendarWeekRule]::FirstFourDayWeek, [DayOfWeek]::Monday ) # 格式化输出(周数补零到两位) Write-Output ("{0}{1:D2}" -f $isoYear, $isoWeek)
执行标准为: ISO 8601是由国际标准化组织(ISO)制定的日期和时间表示方法国际标准
所以,这里代码运行结果:202053
如果要取今天的日期字符串,上面的 $MyDate定义行,可以写成,如下行
$MyDate = (Get-Date).ToString('yyyy-MM-dd')
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/19532093
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。