none
Get-Date между двумя временами RRS feed

  • Вопрос

  • Добрый день.

    Подскажите плиз, никак не пойму почему не работает условие, если тек. время 9:30 и понедельник:

    if ((Get-Date).DayOfWeek -eq 1 -and (Get-Date -Format t) -gt "09:00" -and (Get-Date -Format t) -lt "10:00") {write-host ok}

    Спасибо.

Ответы

  • Вы сравниваете строки, а сравнение строк работает подругому.

    (Get-Date).DayOfWeek -eq 1 -and (Get-Date).Hour -ge 9 -and (Get-Date).Hour -lt 10

    Значение которые можно использовать для сравнения:

    PS > Get-Date | Fl
    
    
    DisplayHint : DateTime
    Date        : 5/7/2018 12:00:00 AM
    Day         : 7
    DayOfWeek   : Monday
    DayOfYear   : 127
    Hour        : 9
    Kind        : Local
    Millisecond : 460
    Minute      : 45
    Month       : 5
    Second      : 49
    Ticks       : 636612831494609249
    TimeOfDay   : 09:45:49.4609249
    Year        : 2018
    DateTime    : Monday, May 7, 2018 9:45:49 AM


    • Изменено KazunEditor 7 мая 2018 г. 6:46
    • Помечено в качестве ответа sekii911 7 мая 2018 г. 6:48
    Отвечающий

Все ответы

  • Вы сравниваете строки, а сравнение строк работает подругому.

    (Get-Date).DayOfWeek -eq 1 -and (Get-Date).Hour -ge 9 -and (Get-Date).Hour -lt 10

    Значение которые можно использовать для сравнения:

    PS > Get-Date | Fl
    
    
    DisplayHint : DateTime
    Date        : 5/7/2018 12:00:00 AM
    Day         : 7
    DayOfWeek   : Monday
    DayOfYear   : 127
    Hour        : 9
    Kind        : Local
    Millisecond : 460
    Minute      : 45
    Month       : 5
    Second      : 49
    Ticks       : 636612831494609249
    TimeOfDay   : 09:45:49.4609249
    Year        : 2018
    DateTime    : Monday, May 7, 2018 9:45:49 AM


    • Изменено KazunEditor 7 мая 2018 г. 6:46
    • Помечено в качестве ответа sekii911 7 мая 2018 г. 6:48
    Отвечающий
  • Ага, понял.

    Спасибо большое!