В моем приложении Go я пытаюсь проверить вхождение даты за период.
if survey.StartPeriod.Before(time.Now()) && survey.EndPeriod.After(time.Now()) {
fmt.Println("1 BLOCK")
}
else if survey.EndPeriod.Before(time.Now()) {
fmt.Println("2 BLOCK")
}
Если у меня есть такие входящие данные (текущее время внутри периода):
Current TIME | 2019-03-28 21:02:47.0377305 +0600 +06 m=+60.748044601
START_PERIOD | 2019-03-28 21:00:00 +0000 +0000
END_PERIOD | 2019-03-28 21:05:00 +0000 +0000
Я хочу запустить код внутри 1 блока.Мой текущий код запускает этот блок, только если я использую функцию Before
для обоих периодов.Я не уверен, что это правильно.
Если у меня есть такие входящие данные (текущее время за пределами end_period):
Current TIME | 2019-03-28 21:10:47.0377305 +0600 +06 m=+60.748044601
START_PERIOD | 2019-03-28 21:00:00 +0000 +0000
END_PERIOD | 2019-03-28 21:05:00 +0000 +0000
Я хочу запустить код внутри 2 блока.Правильно знаю, это работает неправильно.Как правильно сделать эту логику программы?
РЕДАКТИРОВАТЬ :
Как вы можете видеть CURRENT_TIME
внутри диапазона.
CURRENT_TIME | 2019-03-29 08:32:06.1375323 +0600 +06 m=+60.318452301
START_PERIOD | 2019-03-29 08:30:00 +0000 +0000
END_PERIOD | 2019-03-29 08:31:00 +0000 +0000
Когда я пытаюсьдля проверки функции InTimeSpan
возвращается false
неверное значение.Я действительно смущен.Почему это происходит?!
log.Println(InTimeSpan(survey.StartPeriod, survey.EndPeriod, time.Now()))
// return false