sobota, 28 grudnia 2013

Odliczanie do Nowego Roku w PowerShell

Skoro już wcześniej zrobiłem odliczacz do świąt Bożego Narodzenia, to teraz będzie odliczacz do Nowego Roku.
function  Countdown-NewYear
{
    $dateNow = [DateTime]::Now
    $dateNewYear = [DateTime]::ParseExact( [string]
($dateNow.Year+1) + "-01-01-00-00-01", "yyyy-MM-dd-hh-mm-ss", $null) 
 
    return $dateNewYear - $dateNow
}

$newYearCounter = Countdown-NewYear
Write-Host "There are $($newYearCounter.Days) days and $($newYearCounter.Hours) hours until New Year"

Kod jest prawie identyczny jak w poprzednim odliczaczu. Tylko teraz dokładność czasu będzie uzależniona od odległości. Jeżeli do Nowego Roku będzie więcej niż 1 dzień to odliczacz przedstawi wartość w jednostkach dni, jeżeli będzie mniej niż jedna godzina, ale więcej niż jedna minuta to będzie w minutach, itp.
function ToCountdownString
{
    param
    (
        [timespan] $timeSpan
    )
    if($timeSpan.Days -gt 1)
    {
        return "$($timeSpan.Days) days"
    }
    if($timeSpan.Hours -gt 1)
    {
        $timeRemains = $timeSpan.Days * 24 + $timeSpan.Hours
        return "$timeRemains hours"
    }

    if($timeSpan.Minutes -gt 1)
    {
        $timeRemains = $timeSpan.Hours * 60 + $timeSpan.Minutes
         return "$timeRemains minutes"
    }

    if($timeSpan.Seconds -gt 1)
    {
        $timeRemains = $timeSpan.Minutes * 60 + $timeSpan.Seconds
         return "$timeRemains seconds"
    }

    $timeRemains = $timeSpan.Seconds * 1000 + $timeSpan.Milliseconds
    return "$timeRemains milliseconds"
}
Kod wywołania wygląda następująco:
$newYearCounter = Countdown-NewYear
$countdown = ToCountdownString -timeSpan $newYearCounter 
Write-Host "There are $countdown until New Year"
Nie przesadzajmy, nie musisz sprawdzać tego kodu w Sylwestra:) Idź i spędź ten czas z przyjaciółmi, ukochaną osobą albo z rodziną.

Brak komentarzy:

Prześlij komentarz