【发布时间】:2021-02-12 16:26:48
【问题描述】:
我有一个运行 powershell 脚本的计划任务,该脚本运行带有一些参数的可执行文件。其中一个参数是当前周数。
我在 powershell 中使用以下代码来检索周数:
get-date -uformat %V
这似乎返回了错误的周数
- 2014-05-04(星期日),第 18 周返回(如预期)
- 2014-05-05(星期一),第 18 周返回(预计 19 日)
- 2014-05-06(星期二),返回第 19 周(如预期)
在我的注册表中,一周的第一天设置为星期一 (HKEY_CURRENT_USER->Control Panel->International->iFirstDayOfWeek = 0)
有谁知道 powershell 从哪里检索它的 firstDayOfWeek 设置?我应该(/可以)以其他方式在脚本中设置它吗?
我知道一种解决方法是使用 .AddDays(1),但我正在寻找更简洁的解决方案。
编辑: 好吧,这真的很奇怪,我收到不同年份的不同“一周的第一天”..
2012 - 星期六:
PS C:\Users\A730978F> get-date -date "2012-01-08" -uFormat "%Y-%m-%d %a Week: %V"
2012-01-08 Sun Week: 2
PS C:\Users\A730978F> get-date -date "2012-01-09" -uFormat "%Y-%m-%d %a Week: %V"
2012-01-09 Mon Week: 2
PS C:\Users\A730978F> get-date -date "2012-01-10" -uFormat "%Y-%m-%d %a Week: %V"
2012-01-10 Tue Week: 2
PS C:\Users\A730978F> get-date -date "2012-01-11" -uFormat "%Y-%m-%d %a Week: %V"
2012-01-11 Wed Week: 2
PS C:\Users\A730978F> get-date -date "2012-01-12" -uFormat "%Y-%m-%d %a Week: %V"
2012-01-12 Thu Week: 2
PS C:\Users\A730978F> get-date -date "2012-01-13" -uFormat "%Y-%m-%d %a Week: %V"
2012-01-13 Fri Week: 2
PS C:\Users\A730978F> get-date -date "2012-01-14" -uFormat "%Y-%m-%d %a Week: %V"
2012-01-14 Sat Week: 3
2013 - 星期一:
PS C:\Users\A730978F> get-date -date "2013-01-06" -uFormat "%Y-%m-%d %a Week: %V"
2013-01-06 Sun Week: 1
PS C:\Users\A730978F> get-date -date "2013-01-07" -uFormat "%Y-%m-%d %a Week: %V"
2013-01-07 Mon Week: 2
PS C:\Users\A730978F> get-date -date "2013-01-08" -uFormat "%Y-%m-%d %a Week: %V"
2013-01-08 Tue Week: 2
2014 - 周二:
PS C:\Users\A730978F> get-date -date "2014-01-05" -uFormat "%Y-%m-%d %a Week: %V"
2014-01-05 Sun Week: 1
PS C:\Users\A730978F> get-date -date "2014-01-06" -uFormat "%Y-%m-%d %a Week: %V"
2014-01-06 Mon Week: 1
PS C:\Users\A730978F> get-date -date "2014-01-07" -uFormat "%Y-%m-%d %a Week: %V"
2014-01-07 Tue Week: 2
2015 - 星期三:
PS C:\Users\A730978F> get-date -date "2015-01-04" -uFormat "%Y-%m-%d %a Week: %V"
2015-01-04 Sun Week: 1
PS C:\Users\A730978F> get-date -date "2015-01-05" -uFormat "%Y-%m-%d %a Week: %V"
2015-01-05 Mon Week: 1
PS C:\Users\A730978F> get-date -date "2015-01-06" -uFormat "%Y-%m-%d %a Week: %V"
2015-01-06 Tue Week: 1
PS C:\Users\A730978F> get-date -date "2015-01-07" -uFormat "%Y-%m-%d %a Week: %V"
2015-01-07 Wed Week: 2
(请注意,我没有尝试过每一年的所有星期)
编辑2:
再次查看示例后,似乎周数是基于已经过去的“7 天”的数量。我想它实际上根本没有使用任何“一周的第一天”设置。我想我得做一些相应的计算。
感谢您的帮助!
【问题讨论】:
标签: date powershell