samtrex
Goto Top

Kalenderwoche in Powershell - wechselt Donnerstags - dieses Jahr

Hallo zusammen,
Ich habe offensichtlich ein Verständnisproblem mit dem Powershell-Cmdlet get-date.

get-date -uformat %V

Heute (2016-06-13 Mo.) erhalte ich 24. Nach einem Blick in den Kalender, alles ok.
Stelle ich das Datum am Rechner auf 2016-06-16 (Do.) erhalte ich 25! Warum wechselt die KW mitten in der Woche?

In 2017 wechselt die KW dann am Samstag, soweit habe ich schon getestet. Demnach wechselt die KW einen Tag vor dem ersten Wochentag des Jahres. Sprich es wäre nur eine Zählweise. Aber %V ist doch die KW nach ISO. Auch mit %W (Zählt ab Montags) stimmt es nicht.

Ich nutze die Funktion für meine Logfiles. Da ist mir bei der heutigen Kontrolle aufgefallen das das KW24-Log (also seit heute) schon seit 2016-06-09 gefüllt wird.

Für einen Rat wie ich das richtigstellen kann bin ich euch dankbar.

Gruß Sam

Content-Key: 307020

Url: https://administrator.de/contentid/307020

Printed on: April 25, 2024 at 12:04 o'clock

Member: colinardo
Solution colinardo Jun 13, 2016 updated at 14:09:58 (UTC)
Goto Top
Hallo Sam,
das ist ein Bug in dem CMDLet und berücksichtigt nicht das richtige Gebietsschema (CalendarRule und FirstDayOfWeek).

Hiermit erhältst du die korrekte Kalenderwoche für das aktuelle Datum und das aktuell eingestellte Gebietsschema.
function Get-WeekOfYear([datetime]$date){
    $local = [System.Globalization.DateTimeFormatInfo]::CurrentInfo
    return $local.Calendar.GetWeekOfYear($date,$local.CalendarWeekRule,$local.FirstDayOfWeek)
}
# Kalenderwoche es aktuellen Datums ausgeben
Get-WeekOfYear (get-date)
Willst du stattdessen fest die deutsche Kalenderwoche nach ISO 8601 egal was das Gebietsschema sagt, reicht auch ein:
[System.Globalization.DateTimeFormatInfo]::CurrentInfo.Calendar.GetWeekOfYear((get-date),2,1)
Grüße Uwe

siehe auch
Calendar.GetWeekOfYear-Methode (DateTime, CalendarWeekRule, DayOfWeek)
Member: SamTrex
SamTrex Jun 13, 2016 at 14:44:01 (UTC)
Goto Top
Hallo Colinardo,
vielen Dank für Deine schnelle und überaus erhellende Lösung. Ich habe es direkt übernommen.

Bugs ... tz!

Gruß Sam