Необходимо проверить, если время между двумя другими временами в тот же день - PullRequest
1 голос
/ 23 января 2020

В Go как узнать, находится ли время между двумя другими моментами, игнорируя дату.

Дата не имеет значения, так как времена получены из литералов, которые не позволяют указывать дату .

Время начала гарантированно будет раньше времени окончания. Например,

Время 10:00 между 09:00 и 13:00? - да так верно Время 14:12 между 02:00 и 03:00? - нет, так ложно

1 Ответ

4 голосов
/ 23 января 2020

Если вы не хотите сравнивать дату, просто игнорируйте ее при разборе времени.

https://play.golang.org/p/dklyN7NuC5a

start, _ := time.Parse("15:04", "14:00")
end, _ := time.Parse("15:04", "15:00")

t, err := time.Parse("15:04", "14:12")
if err != nil {
    log.Fatal(err)
}

fmt.Println(start.Before(t) && end.After(t))

Если вы Вам не нужны никакие другие функции времени, и ваши часы всегда отформатированы в HH:mm, тогда вы можете сравнить их лексикографически:

start := "14:00"
end := "15:00"

t := "14:12"

fmt.Println(start < t && t < end)
...