十干十二支を数え上げるパッケージを作ってみた

no extension

夏の終りの土用の丑の日に

という記事を Zenn に上げたが,調子に乗って Go パッケージ化してみた。

これを使って,たとえば

// +build run

package main

import (
    "flag"
    "fmt"
    "os"
    "time"

    "github.com/spiegel-im-spiegel/jzodiac"
)

func main() {
    flag.Parse()
    args := flag.Args()
    if len(args) < 1 {
        fmt.Fprintln(os.Stderr, os.ErrInvalid)
        return
    }
    for _, s := range args {
        t, err := time.Parse("2006-01-02", s)
        if err != nil {
            fmt.Fprintln(os.Stderr, err)
            continue
        }
        kan, shi := jzodiac.ZodiacYearNumber(t.Year())
        fmt.Printf("Year %v is %v%v\n", t.Year(), kan, shi)
        kan, shi = jzodiac.ZodiacDayNumber(t)
        fmt.Printf("Day %v is %v%v\n", t.Format("2006-01-02"), kan, shi)
    }
}

というコードを組めば

$ go run sample.go 2021-07-28
Year 2021 is 辛丑
Day 2021-07-28 is 丁丑

という感じに年と日の干支を取得できる。 ちなみに月の干支は旧暦と連動しているので,今回は実装していない。

検算には,若い頃に買った『新こよみ便利帳』に載っていた表を使った。 何でも取っておくものである(笑)

参考図書

photo
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
丸善出版 2016-06-20
単行本(ソフトカバー)
4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
評価     

著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。

reviewed by Spiegel on 2016-07-13 (powered by PA-APIv5)

photo
新こよみ便利帳―天文現象・暦計算のすべて
暦計算研究会 (編集)
恒星社厚生閣 1991-05-01
単行本
4769907001 (ASIN), 9784769907008 (EAN), 4769907001 (ISBN)
評価     

今となっては古い内容だが,暦や天体位置の一覧表が載っていて当時はそれなりに役に立った。

reviewed by Spiegel on 2021-07-31 (powered by PA-APIv5)