minimum_wage_jp

日本の地域別最低賃金(都道府県別)をシンプルに扱うための Rust クレートです。
特徴
- 指定日の最低賃金(円)を取得
- 指定時給が最低賃金を満たすか判定(不足額も算出)
- 年度(改定年)を指定して率を取得
- データは埋め込み済み、適用開始日前は前年データに自動フォールバック
インストール
[dependencies]
minimum_wage_jp = "1"
クイックスタート
use chrono::NaiveDate;
use minimum_wage_jp::{MinimumWageJp, MinimumWageJpCompliance};
// 都道府県コード: 1 = 北海道, 13 = 東京都, 47 = 沖縄県
let hokkaido: u8 = 1;
// 今日の最低賃金(円)を取得
let rate_today = MinimumWageJp::rate(hokkaido).unwrap();
println!("今日の最低賃金: {}円", rate_today);
// 指定日の最低賃金(円)を取得
let date = NaiveDate::from_ymd_opt(2025, 10, 4).unwrap();
let rate = MinimumWageJp::rate_on_date(date, hokkaido).unwrap();
assert_eq!(rate, 1075);
// 時給が最低賃金を満たすか判定
let result = MinimumWageJp::is_compliant_on_date(date, hokkaido, 1020).unwrap();
match result {
MinimumWageJpCompliance::Compliant => println!("OK"),
MinimumWageJpCompliance::Short { shortage_yen, required_yen } => {
println!("不足: {}円 (必要: {}円)", shortage_yen, required_yen);
}
}
API
最低賃金の取得
| メソッド |
説明 |
rate(pref: u8) |
今日の最低賃金(円)を取得 |
rate_on_date(date: NaiveDate, pref: u8) |
指定日の最低賃金(円)を取得 |
rate_for_revision(year: u16, pref: u8) |
指定年版(改定年)の最低賃金を取得 |
コンプライアンス判定
| メソッド |
説明 |
is_compliant(pref: u8, hourly_yen: u32) |
今日の時給が最低賃金を満たすか判定 |
is_compliant_on_date(date: NaiveDate, pref: u8, hourly_yen: u32) |
指定日の時給が最低賃金を満たすか判定 |
戻り値の型
enum MinimumWageJpCompliance {
Compliant, // 最低賃金を満たしている
Short { shortage_yen: u32, required_yen: u32 } // 不足あり
}
エラー型
| エラー |
説明 |
InvalidPrefCode(u8) |
都道府県コードが 1〜47 の範囲外 |
DatasetNotFoundForDate { date, prev, next } |
指定日のデータが存在しない |
DatasetNotFoundForYear { year } |
指定年版のデータが存在しない |
都道府県コード
JIS X 0401 に準拠した 1〜47 の数値コードを使用します。
| コード |
都道府県 |
コード |
都道府県 |
コード |
都道府県 |
| 1 |
北海道 |
17 |
石川県 |
33 |
岡山県 |
| 2 |
青森県 |
18 |
福井県 |
34 |
広島県 |
| 3 |
岩手県 |
19 |
山梨県 |
35 |
山口県 |
| 4 |
宮城県 |
20 |
長野県 |
36 |
徳島県 |
| 5 |
秋田県 |
21 |
岐阜県 |
37 |
香川県 |
| 6 |
山形県 |
22 |
静岡県 |
38 |
愛媛県 |
| 7 |
福島県 |
23 |
愛知県 |
39 |
高知県 |
| 8 |
茨城県 |
24 |
三重県 |
40 |
福岡県 |
| 9 |
栃木県 |
25 |
滋賀県 |
41 |
佐賀県 |
| 10 |
群馬県 |
26 |
京都府 |
42 |
長崎県 |
| 11 |
埼玉県 |
27 |
大阪府 |
43 |
熊本県 |
| 12 |
千葉県 |
28 |
兵庫県 |
44 |
大分県 |
| 13 |
東京都 |
29 |
奈良県 |
45 |
宮崎県 |
| 14 |
神奈川県 |
30 |
和歌山県 |
46 |
鹿児島県 |
| 15 |
新潟県 |
31 |
鳥取県 |
47 |
沖縄県 |
| 16 |
富山県 |
32 |
島根県 |
|
|
データセット
同梱データ
| 年版 |
適用開始日 |
| 2024 |
2024-10-01 |
| 2025 |
2025-10-01 |
仕様
- 指定日に適用される最新の年版を自動選択
- 都道府県ごとの適用開始日が異なる場合、適用日前は前年版にフォールバック
- 例: 北海道の 2025 年版適用開始日は 2025-10-04
- 最初の年版より前の日付を指定した場合はエラーを返却
タイムゾーンについて
rate() および is_compliant() は chrono::Local を使用してローカル日付を取得します。
サーバ・クライアント間でタイムゾーンが異なる環境では、rate_on_date() / is_compliant_on_date() の使用を推奨します。
テスト
cargo test
貢献
新しい年版の追加や適用開始日の修正は src/dataset.rs を編集してください。
変更時はテストも併せて更新し、フォールバック仕様が正しく動作することを確認してください。
ライセンス
MIT License