Im letzten Blogeintrag haben wir uns die Ticks angeschaut und die möglichen Formatierungen.
In diesem Blogeintrag schauen wir uns an, wie man einen ganzen Monat zeitlich erfassen kann. Vom ersten Tag dieses Monats 0:00 Uhr bis zum letzten Tag des Monats 23:59 Uhr.
Um zu sehen, welche Parameter der Get-Date Befehl beinhaltet, kann ich folgendes aufrufen:
[PS] Get-Help Get-Date
NAME Get-Date
ÜBERSICHT Gets the current date and time.
SYNTAX
Get-Date [[-Date] <DateTime>] [-Day <Int32>] [-DisplayHint {Date | Time | DateTime}] [-Format <String>] [-Hour <Int32>] [-Millisecond <Int32>] [-Minute <Int32>] [-Month <Int32>] [-Second <Int32>] [-Year <Int32>] [<CommonParameters>]
[PS] C:\>Get-Help Get-Date NAME Get-Date ÜBERSICHT Gets the current date and time. SYNTAX Get-Date [[-Date] <DateTime>] [-Day <Int32>] [-DisplayHint {Date | Time | DateTime}] [-Format <String>] [-Hour <Int32>] [-Millisecond <Int32>] [-Minute <Int32>] [-Month <Int32>] [-Second <Int32>] [-Year <Int32>] [<CommonParameters>]
Wir sehen, mit –Day, -Hour, -Minute und –Second kann ich eine feste Zeit definieren.
Das heißt der Beginn des Monats wäre:
PS C:\> $ersterTag = Get-Date -Day 1 -Hour 0 -Minute 0 -Second 0
PS C:\> $ersterTag
Donnerstag, 1. Juni 2017 00:00:00
PS C:\> $ersterTag = Get-Date -Day 1 -Hour 0 -Minute 0 -Second 0 PS C:\> $ersterTag Donnerstag, 1. Juni 2017 00:00:00
Im Blogeintrag “Die Uhrzeit” haben wir gesehen, dass ich mit dem Datum rechnen kann. Das heißt, um das Monatsende zu berechnen zähle ich einfach zu dem vorherigen Ergebnis einen Monat dazu und ziehe eine Sekunde ab:
PS C:\> $letzterTag = ($ersterTag).AddMonths(1).AddSeconds(-1)
PS C:\> $letzterTag
Freitag, 30. Juni 2017 23:59:59
PS C:\> $letzterTag = ($ersterTag).AddMonths(1).AddSeconds(-1) PS C:\> $letzterTag Freitag, 30. Juni 2017 23:59:59
Wenn ich den Anfang und Ende des letzten Monats berechnen will, dann muss ich einfach beim Startwert einen Monat abziehen:
PS C:\> $ersterTag = (Get-Date -Day 1 -Hour 0 -Minute 0 -Second 0).addmonths(-1)
PS C:\> $ersterTag
Montag, 1. Mai 2017 00:00:00
PS C:\> $letzterTag = ($ersterTag).AddMonths(1).AddSeconds(-1)
PS C:\> $letzterTag
Mittwoch, 31. Mai 2017 23:59:59
PS C:\> $ersterTag = (Get-Date -Day 1 -Hour 0 -Minute 0 -Second 0).addmonths(-1) PS C:\> $ersterTag Montag, 1. Mai 2017 00:00:00 PS C:\> $letzterTag = ($ersterTag).AddMonths(1).AddSeconds(-1) PS C:\> $letzterTag Mittwoch, 31. Mai 2017 23:59:59
Schön formatieren kann man das ganze wieder mit der ToString-Methode. So würde zum Beispiel eine Konsolenausgabe aussehen:
Write-Host “Der aktuelle Monat: Von $($ersterTag.toString(“dd.MM.yyyy HH.mm”)) bis $($letzterTag.toString(“dd.MM.yyyy HH.mm”))“
Der aktuelle Monat: Von 01.05.2017 00.00 bis 31.05.2017 23.59
PS C:\> Write-Host “Der aktuelle Monat: Von $($ersterTag.toString(“dd.MM.yyyy HH.mm”)) bis $($letzterTag.toString(“dd.MM.yyyy HH.mm”))“ Der aktuelle Monat: Von 01.05.2017 00.00 bis 31.05.2017 23.59
Im nächsten Blogeintrag werden wir rechnen und runden.
Was denken Sie?