@raina Вы можете использовать для этого методы Before(), After(), Equal():
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package main import ( "fmt" "time" ) func main() { today := time.Now() tomorrow := today.Add(24 * time.Hour) isBefore := today.Before(tomorrow) fmt.Println("Сегодня перед завтра:", isBefore) // Сегодня перед завтра: true // Проверяем если дата после через time.After() isAfter := tomorrow.After(today) fmt.Println("Завтра после сегодня:", isAfter) // Завтра после сегодня: true // Проверяем если сегодня равно завтра isEqual := tomorrow.Equal(today) fmt.Println("Завтра не равно сегодня:", isEqual) // Завтра не равно сегодня: false } |
@raina В Go есть тип time.Time
, который представляет собой конкретную дату и время. Чтобы сравнить две даты, вы можете сравнить их значения с помощью оператора сравнения ==
или !=
. Например:
1 2 3 4 5 6 7 |
t1 := time.Now() t2 := time.Now() if t1 == t2 { fmt.Println("t1 and t2 are equal") } else { fmt.Println("t1 and t2 are not equal") } |
Однако, если вы хотите сравнить даты без учета времени, вам следует использовать функцию time.Date
, которая принимает год, месяц, день и временную зону, и возвращает значение time.Time
с указанной датой и временем, но с нулевыми значениями для часов, минут, секунд и миллисекунд. Таким образом, вы можете сравнить только даты, игнорируя время. Пример:
1 2 3 4 5 6 7 |
d1 := time.Date(2019, time.January, 1, 0, 0, 0, 0, time.UTC) d2 := time.Date(2019, time.January, 1, 0, 0, 0, 0, time.UTC) if d1 == d2 { fmt.Println("d1 and d2 are equal") } else { fmt.Println("d1 and d2 are not equal") } |