3303 Jegenstorf
+41 31 762 02 64

Powershell z.b. den 3. Montag im Monat berechnen (Bestimmten Wochentag im Monat berechnen)

Mit Powershell estimmten Wochentag im Monat berechnen

Bestimmten Wochentag im Monat berechnen

Wenn ein Script immer nur an einem bestimmten Wochentag ausgeführt werden soll

z.B. immer am 3. Montag im Monat

Dann könnt ihr dies Function dafür verwenden.

Das Script würde dann nur ausgeführt wenn das aktuelle Datum mit dem gewünschten Datum (3. Montag) zusammenpasst. Ansonsten wird es abgebrochen.

Clear-Host
#Returns a date object of the Third Monday of the month for given moth and year
#Gibt das Datum des dritten Montags im aktuellen Monat des aktuellen Jahres aus

$Year      = (Get-Date).Year   # Berechnet das aktuelle Jahr
$Month     = (Get-Date).Month  # Berechnet den aktuellen Monat
$DayofWeek = "Monday"          # Der Wochentag der gesucht wird
$Repeat    = "14"              # 7 der 2. Wochentag, 14 der 3. Wochentag, 21 der 4 Wochentag
$nowDate   = (Get-Date).Date   # Das heutige Datum

function get-xDayofWeek ([int]$Month, [int]$Year, $DayofWeek) 
{
    [int]$Day = 1
    while ((Get-Date -Day $Day -Hour 0 -Millisecond 0 -Minute 0 -Month $Month -Year $Year -Second 0).DayOfWeek -ne $DayofWeek) 
    {
        $day++
    }
    $day += $Repeat
    return (Get-Date -Day $Day -Hour 0 -Millisecond 0 -Minute 0 -Month $Month -Year $Year -Second 0)
}
$newDate = get-xDayofWeek $Month $Year $DayofWeek 
if ($nowDate -eq $newDate ) 
{
    write-host "Process ausführen"
    Write-Host $newDate
}
else {
    Write-Host "Prozess abbrechen"
}
Write-Host "Heute" $nowDate
Write-Host "Gewuenschtes Datum " $newDate