2016-04-03 16 views
1

Git'te kod yazmayı ve basit bir hatırlatma işlevi oluşturmayı öğreniyorum.Git: neden time.Now(). Saat/Dakika/Saniye, altı haneli bir sayı döndürüyor?

Geçerli saati normal 24 saatlik saat XX.XX (saat, dakika) olarak görüntülemek istiyorum.

Şu anki zamanı bir değişken t kaydettim ve yazdırdığımda saatin 23.00 Kasım 2009 saatine kadar olduğunu görüyorum. İyi, ama yazdığımda da, sonuç olarak 132288.132480.

t.Seconds yazarken benzer bir şeydir. Bunun neden olduğunu anlayamadım.

Kabaca 2000 gün geçti, ancak bu yalnızca 48k saat ve 2880k dakikadır, bu yüzden sonuçta saat ve dakika arasındaki küçük fark sorunun başka bir şey olduğunu işaret ediyor.

Kodu oyun alanında çalıştırıyorum.

Kodum:

package main 

import (
    "fmt" 
    "time" 
    ) 

func main() { 
    Remind("It's time to eat") 
} 


func Remind(text string) { 
    t := time.Now() 
    fmt.Println(t) 
    fmt.Printf("The time is %d.%d: ", t.Hour, t.Minute) 
    fmt.Printf(text) 
    fmt.Println() 
} 
+4

'Saat' ve' Dakika' işlevleri; bunları değerlendirmeniz gerekir: 'fmt.Printf (" Zaman% d.% d: ", t.Hour(), t.Minute())'. –

+0

Aman Tanrım, bu basit ve açıktı. Teşekkürler! Biliyor musunuz? Ve neden t.Minute ve t.Second çok benzer? – Victoria

+1

t.Hour ve t.Minutes, işlevlerin sonucu değil, işlevlere referanstır. Bu işlevlerin saklandığı bellekte adres olarak düşünebilirsiniz. – EricSchaefer

cevap

4

Bir değer olarak kullanmak yerine t.Hour() aramak gerekir.

Kontrol burada time paketinin kaynağı: https://golang.org/src/time/time.go?s=12994:13018#L390

399 // Hour returns the hour within the day specified by t, in the range [0, 23]. 
    400 func (t Time) Hour() int { 
    401  return int(t.abs()%secondsPerDay)/secondsPerHour 
    402 } 
    403 

Şüphe, hızlı resmî go packages page gelen özel paket kaynağını okuyarak bir açıklama bulabilirsiniz.

+0

Eh, zaman paketi sayfasını okudum, ancak bir işlev olarak doğru şekilde saat aramıyordum farketmedim. Ne demek istiyorsun? – Victoria

+1

@Victoria 'Hour' işlevine bir işaretçi https://play.golang.org/p/xAouiV8oES –

İlgili konular