Archive

Countdown

    Keine Ereignisse vorhanden

Powershell: Kalenderwoche gemäß ISO 8601

In der Powershell kann man sich mit folgendem Befehl die Nummer der aktuellen Kalenderwoche ausgeben lassen:

get-date -uFormat %V

Nur leider entspricht die Ausgabe nicht der Nummerierung der Kalenderwochen gemäß ISO 8601, in der folgende Parameter festgelegt sind:

  • Erster Tag der Woche ist Montag
  • Erste Woche des Jahres (also KW1) ist die erste 4-Tage-Woche

In der Powershell hingegen werden andere Parameter für die Bestimmung der Nummer der Kalenderwoche verwendet:

  • Erster Tag der Woche ist Sonntag
  • Erste Woche des Jahres beginnt am 01.01.

Wenn man die Kalenderwoche gemäß ISO 8601 benötigt, hilft folgende Funktion,  die für ein übergebenes Datum die Kalenderwoche im Format KWNN/JJJJ ausgibt:

function get-isoweeknumber($Date) {
# get the day of week as <Int>
[int]$dayOfWeek = $Date.DayOfWeek
# if 0 (Sunday) change it to 7
if (-not $dayOfWeek) {$dayOfWeek = 7}
# adjust date to nearest Thursday (middle of the week), past or future
$midWeek = $Date.AddDays(4 - $dayOfWeek)
# year the week belongs to
$year = $midWeek.year
# week number
$week = [Math]::Ceiling($midWeek.DayOfYear / 7)
# output the ISO week date
'KW{0:00}/{1:0000}' -f $week, $year
}

Fundstelle: http://robertrobelo.spaces.live.com/blog/cns!1D7FE2F4A61D31E1!284.entry

Informationen zum Thema Outlook und Kalenderwoche:  http://www.roland-ehle.de/archives/354

2 comments to Powershell: Kalenderwoche gemäß ISO 8601

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Comment Spam Protection by WP-SpamFree