none
korrekter Math Round Aufruf RRS feed

  • 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?

    Montag, 6. Februar 2012 16:10

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)

     

    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    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
    Montag, 6. Februar 2012 18:05

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)

     

    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    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
    Montag, 6. Februar 2012 18:05

  • 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
    

    Dienstag, 7. Februar 2012 08:28