minimum_wage_jp

Crates.iominimum_wage_jp
lib.rsminimum_wage_jp
version1.0.1
created_at2025-09-26 05:18:10.117115+00
updated_at2026-01-07 11:47:55.258074+00
descriptionJapan minimum wage by prefecture: get rate for a date and check compliance
homepage
repositoryhttps://github.com/uiuifree/rust-minimum-wage-jp
max_upload_size
id1855438
size29,383
Misaki (uiuifree)

documentation

https://docs.rs/minimum_wage_jp

README

minimum_wage_jp

Crates.io License: MIT

日本の地域別最低賃金(都道府県別)をシンプルに扱うための 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

Commit count: 3

cargo fmt