💻

上中下旬を検算する

2022/09/01に公開

最近の ZennGitHub リポジトリ上のコードを埋め込めるらしいので,練習がてら最近書いた Go コードを紹介してみる。

上中下旬を表現したい

「1月上旬」とか「9月下旬」とかあるじゃないですか。アレを制御したいわけですよ。というわけで,まずはこんな型を考えてみる。

https://github.com/spiegel-im-spiegel/zenn-docs/blob/main/code/period-sample/period/period.go#L8-L30

んー。こんな感じかな。

次に,この Period 型を扱える日付型を定義する。

https://github.com/spiegel-im-spiegel/zenn-docs/blob/main/code/period-sample/period/period.go#L32-L48

これで上中下旬を含む日付情報を整数で表すことができた。日付への展開は

https://github.com/spiegel-im-spiegel/zenn-docs/blob/main/code/period-sample/period/period.go#L50-L67

とすればいいだろう。これで

https://github.com/spiegel-im-spiegel/zenn-docs/blob/main/code/period-sample/sample1.go

という感じに記述できる。

Duration 型を使った加算と減算も書いておこう。

https://github.com/spiegel-im-spiegel/zenn-docs/blob/main/code/period-sample/period/period.go#L69-L77

これを使った計算は

https://github.com/spiegel-im-spiegel/zenn-docs/blob/main/code/period-sample/sample2.go

という感じに書けた。

Go で検算する

ホンマのことを言うと,これに似た機能を持つ Java クラスを先に作ろうとしてたんよ。で,テストを書くための検算をどうしようと考えて Go で書いたのがこれだったり(実際はもっと雑に書いている)。

昔はスクリプト言語とかで検算用のコードを書いてたりしてたんだけど,最近は何となく Go で書いてたりする。こういうコードって使い終わったら捨てちゃうんだけど,今回はリサイクルすることもあるかもしれん,と公開してみることにした。まぁ,パッケージにするまでもないので,サンプルコードということで。

それでは,楽しくコードを書きましょう。

GitHubで編集を提案

Discussion