
とうほくプロコン2025の作品、
SICA-HEALが教えてくれた魚の旬。季節を扱うクラスがあると便利なので、日時ライブラリ day-es に、Seasons.js を追記しました。

「code4fukui/day-es」
日時を扱う時に便利です!
テストコードは下記の通り。
import * as t from "https://deno.land/std/testing/asserts.ts";
import { getSeason } from "./Seasons.js";
Deno.test("simple", () => {
t.assertEquals(getSeason(), "winter"); // 2025-12
t.assertEquals(getSeason(new Date("2025-12-01")), "winter");
t.assertEquals(getSeason(new Date("2025-03-01")), "spring");
t.assertEquals(getSeason(new Date("2025-06-01")), "summer");
t.assertEquals(getSeason(new Date("2025-09-01")), "autumn");
t.assertEquals(getSeason(new Date("2025-11-30")), "autumn");
});
Deno.test("ja", () => {
t.assertEquals(getSeason(new Date("2025-12-01"), "ja"), "冬");
t.assertEquals(getSeason(new Date("2025-03-01"), "ja"), "春");
t.assertEquals(getSeason(new Date("2025-06-01"), "ja"), "夏");
t.assertEquals(getSeason(new Date("2025-09-01"), "ja"), "秋");
});
deno test コマンドで使うと、ライブラリにバグがないことをテストコードの範囲内で確認できます。
$ deno test Seasons.test.js
running 2 tests from ./Seasons.test.js
simple ... ok (0ms)
ja ... ok (0ms)
ok | 2 passed | 0 failed (3ms)
12月-2月を冬、3月-5月を春、6月-8月を夏、9月-11月を秋と定義しましたが、昨今の気象変動を勘案するとちょっとずらしたほうがいいのかも?
実は、テストコード、パラメータ指定なしで現在日時で季節を返すので、春がくるとテストがエラーとなります。
links
- ARゴーグルでお魚料理支援、とうほくプロコン2025作品データの活用法