DRYな備忘録

Don't Repeat Yourself.

Go言語でMonth型をintにする【golang】

問題

go言語で現在時刻は以下のように取得できる

package main
import (
    "time"
    "fmt"
)
func main() {
    now := time.Now()
    fmt.Printf("Now\t: %v\n", now)
    fmt.Printf("Year\t: %v\n", now.Year())
    fmt.Printf("Month\t: %v\n", now.Month())
    fmt.Printf("Date\t: %v\n", now.Day())
    fmt.Printf("Hour\t: %v\n", now.Hour())
    // まとめてとるなら
    ye, mo, da := now.Date()
    fmt.Printf("%v年%v月%v日",ye,mo,da) 
}

これを実行すると、残念ながらこうなる

otiai10 % go run hoge.go
Now     : 2013-10-12 09:37:05.986899858 +0900 JST
Year    : 2013
Month   : October
Date    : 12
Hour    : 9
2013年October月12日

いや、October( ー`дー´)キリッじゃねえよそこは10返せよ

解決

ここにのってた

あとここ参考

で、こうした

package main
import (
    "time"
    "fmt"
)
func main() {
    now := time.Now()
    fmt.Printf("Now\t: %v\n", now)
    fmt.Printf("Year\t: %v\n", now.Year())
    fmt.Printf("Month\t: %v\n", int(now.Month()))
    fmt.Printf("Date\t: %v\n", now.Day())
    fmt.Printf("Hour\t: %v\n", now.Hour())
    // まとめてとるなら
    ye, mo, da := now.Date()
    fmt.Printf("%v年%v月%v日",ye,int(mo),da)
}

実行すると

otiai10 % go run hoge.go
Now     : 2013-10-12 09:43:57.357452783 +0900 JST
Year    : 2013
Month   : 10
Date    : 12
Hour    : 9
2013年10月12日

あーえがったえがった

雑感

  • 天気の良い日は窓を開け、ビールを片手にコーディング。何ぞ嬉しからずや

DRY