2013-03-13 4 views
2

Привет, я не могу понять, как правильно провести арифметику времени в Go.Простой Добавить в сравнение и сравнить GO

У меня есть время «объект», позднее инициализированное до Now() и сохраненное.

insertTime time.Time 

Позже, мне нужно выяснить, если объект старше 15 минут.

Как это сделать? Нужно ли мне создать Duration из 15 минут, добавьте его в текущее время и сравните? Если да, то как мне это сделать?

ответ

8

func (Time) After будет полезен, я считаю. Схема:

when := time.Now() 

... 

if time.Now().After(when.Add(15*time.Minute)) { 
     // Conditionally process something if at least 15 minutes elapsed 
} 

Вместо переменной, when может быть полем некоторой структуры, например.

Альтернативный подход:

deadline := time.Now().Add(15*time.Minute) 

... 

if time.Now().After(deadline) { 
     // Conditionally process something if at least 15 minutes elapsed 
} 

Я предпочитаю более позднюю версию лично.

+0

Спасибо, теперь все имеет смысл! Было немного сложно понять постоянные времени. –

+1

@jnml Не думаете ли вы, что в двух примерах условие «Является ли данный момент после крайнего срока» лучше выражаться как «если time.Now(). После (крайний срок)» и соответственно. 'if time.Now(). После (когда.Add (15 * time.Minute))'? (не наоборот) – Deleplace

+0

@Ripounet: Исправлено, спасибо. – zzzz

Смежные вопросы