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

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
アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)
丸善出版 2016-06-20 (Release 2021-07-13)
Kindle版
B099928SJD (ASIN)
評価     

Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想はこちら

reviewed by Spiegel on 2021-05-22 (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)