У меня есть запланированная задача, которая запускает скрипт powershell, который запускает исполняемый файл с некоторыми параметрами. Одним из параметров является номер текущей недели.Как первый день недели определяется в powershell?
Я использую следующий код в PowerShell для получения НомерНедели:
get-date -uformat %V
Это, кажется, вернуть неверные НомерНедели
- 2014-05-04 (воскресенье), возвращает неделю NR 18 (как ожидалось)
- 2014-05-05 (понедельник), возвращает неделю NR 18 (ожидаемый 19)
- 2014-05-06 (вторник), возвращает неделю NR 19 (как ожидалось)
В моем реестром первый день недели установлен в понедельник (HKEY_CURRENT_USER-> Панель управления-> International-> iFirstDayOfWeek = 0)
Кто-нибудь знает, где PowerShell извлекает это firstDayOfWeek настройка от? Должен ли (/ может) установить его в скрипте?
Я знаю, что обходной путь заключается в использовании .AddDays (1), но я ищу более аккуратное решение.
Edit: Хорошо это действительно странно, я получаю разные «первый день недели для разных лет ..
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
(Обратите внимание, что я не пробовал все недели за каждый год)
Edit2:
После снова глядя на примерах его кажется, что номер недели основан на количестве «7 дней», которое прошло. Думаю, на самом деле он вообще не использует настройки «первого дня недели». Думаю, мне придется сделать некоторые вычисления соответственно.
Спасибо за помощь в любом случае!
Связанный: http://stackoverflow.com/questions/15111557/using-powershell-how-do-you-get-the-weekday-number –