問題
「五十日(ごとおび)=毎月 5・10・15・20・25・30 日」の本体式を書け(前提は wkst: Mon の @JP のみ・データ不要)。nth を 6 回並べない形が望ましい。
正答
everyDay |> filter(d => dayNo(d) mod 5 == 0)
判定基準: 評価範囲 2026-09-01..2026-10-01 で 2026-09-05, 2026-09-10, 2026-09-15,
2026-09-20, 2026-09-25, 2026-09-30(別解可——nth(5) | nth(10) | … の 6 本和も同一出力。
31 日を含めたら誤り)。
解説
「5 の倍数日」は暦座標糖衣 dayNo(d)(点の属する月内の日番号)の剰余で一発——列挙の和より
短く、意図(5 で割り切れる日)がそのまま式になる。31 日は 31 mod 5 == 1 なので自然に
落ちる。五十日は決済・集金の商慣習日で、営業日ロールと組む変種(五十日かつ営業日)が実務の
定番形。impl 実走検証済み(2026-08-01・公開 HEAD 9e46dcf)。
検証
# eval: 2026-09-01..2026-10-01
premise JP {
calendar-system: Gregorian
tz: "Asia/Tokyo"
wkst: Mon
}
@JP
everyDay |> filter(d => dayNo(d) mod 5 == 0)
2026-09-05
2026-09-10
2026-09-15
2026-09-20
2026-09-25
2026-09-30