Benutzer mit den meisten Antworten
korrekter Math Round Aufruf

Frage
-
Hallo zusammen
Ich beschäftige mich immer wieder mit kleinen Powershell Scripts. Nun habe ich mir zur "Aufgabe" gemacht mir die Tage bis Weihnachten anzeigen zu lassen.
Das Script funktioniert soweit, jedoch werden Bruchteile vom Tag angezeigt. Dies versuche ich mit der .NET Klasse System Math Round zu lösen, was mir allerdings nicht richtig gelingt...
$Datum = Get-Date
$Weihnachten = Get-Date "24/12/2012"
$Tage = $Weihnachten - $Datum
Write-Host "Bis Weihnachten sind es noch" $([system.Math]::Round($Tage, 2)) "Tage"
Weiss jemand wie ich die Tage korrekt auf 2 Kommastellen runden kann?
Antworten
-
Deine Variable enthält ein Objekt vom Typ Timespan.
Du kannst keinen Timespan runden !Schau dir mal genau und in ruhe die einzelnen ausgaben hier an!
$Datum = Get-Date $Weihnachten = Get-Date "24/12/2012" $Tage = $Weihnachten - $Datum # ausgabe der Tage /millisekunden bis Weihnachten $Tage # ausgabe des Objektes (Methoden und Properties $Tage | Get-Member # Kommazahlen richtig gerundet ! [system.Math]::Round(1.235455, 2)
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace" "
- Bearbeitet Peter Kriegel Montag, 6. Februar 2012 18:07
- Als Antwort markiert Voltanus Dienstag, 7. Februar 2012 08:31
Alle Antworten
-
Deine Variable enthält ein Objekt vom Typ Timespan.
Du kannst keinen Timespan runden !Schau dir mal genau und in ruhe die einzelnen ausgaben hier an!
$Datum = Get-Date $Weihnachten = Get-Date "24/12/2012" $Tage = $Weihnachten - $Datum # ausgabe der Tage /millisekunden bis Weihnachten $Tage # ausgabe des Objektes (Methoden und Properties $Tage | Get-Member # Kommazahlen richtig gerundet ! [system.Math]::Round(1.235455, 2)
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace" "
- Bearbeitet Peter Kriegel Montag, 6. Februar 2012 18:07
- Als Antwort markiert Voltanus Dienstag, 7. Februar 2012 08:31
-
Deine Variable enthält ein Objekt vom Typ Timespan.
Du kannst keinen Timespan runden !Schau dir mal genau und in ruhe die einzelnen ausgaben hier an!
$Datum = Get-Date $Weihnachten = Get-Date "24/12/2012" $Tage = $Weihnachten - $Datum # ausgabe der Tage /millisekunden bis Weihnachten $Tage # ausgabe des Objektes (Methoden und Properties $Tage | Get-Member # Kommazahlen richtig gerundet ! [system.Math]::Round(1.235455, 2)
Aaahhh... Ja das sind die Anfängerfehler welche logisch erscheinen sobald man sie sieht :)
Habs jetzt umgeschrieben und funktioniert einwandfrei, danke dir!
Für interessierte hier das Ergebniss:
$Datum = Get-Date $Weihnachten = Get-Date "24/12/2012" $Tage = $Weihnachten - $Datum Write-Host "Bis Weihnachten dauert es noch" $Tage.Days Tage und $Tage.Hours Stunden