Ответ 1
Ваша программа работает по назначению. Я получаю 45,55 часа. Вы пытались запустить его локально?
Время на игровой площадке фиксировано, time.Now() даст вам 2009-11-10 23:00:00 +0000 UTC всегда.
Как рассчитать количество дней между двумя датами? В приведенном ниже коде я должен получить количество часов, а это значит, что мне нужно будет только делить на 24. Однако результат, который я получаю, это что-то вроде -44929.000000. Я смотрю только день или два назад, поэтому я ожидаю 24 или 48 часов.
package main
import (
"fmt"
"time"
)
func main() {
timeFormat := "2006-01-02"
t, _ := time.Parse(timeFormat, "2014-12-28")
fmt.Println(t)
// duration := time.Since(t)
duration := time.Now().Sub(t)
fmt.Printf("%f", duration.Hours())
}
Здесь исполняемый код Go: http://play.golang.org/p/1MV6wnLVKh
Ваша программа работает по назначению. Я получаю 45,55 часа. Вы пытались запустить его локально?
Время на игровой площадке фиксировано, time.Now() даст вам 2009-11-10 23:00:00 +0000 UTC всегда.
package main
import (
"fmt"
"time"
)
func main() {
date := time.Now()
fmt.Println(date)
format := "2006-01-02 15:04:05"
then,_ := time.Parse(format, "2007-09-18 11:58:06")
fmt.Println(then)
diff := date.Sub(then)
//func Since(t Time) Duration
//Since returns the time elapsed since t.
//It is shorthand for time.Now().Sub(t).
fmt.Println(diff.Hours())// number of Hours
fmt.Println(diff.Nanoseconds())// number of Nanoseconds
fmt.Println(diff.Minutes())// number of Minutes
fmt.Println(diff.Seconds())// number of Seconds
fmt.Println(int(diff.Hours()/24))// number of days
}
Вот бегущий код https://play.golang.org/p/Vbhh1cBKnh