minimum_wage_jp 1.1.0

Japan minimum wage by prefecture (日本の地域別最低賃金): rates for any date and compliance checks
Documentation
use crate::YearDataset;
use chrono::NaiveDate;
use std::sync::LazyLock;

/// すべての年版データ(新しい年度はここに追加していく)
///
/// 各年版は `effective_from`(その年版で最も早い発効日)の昇順で並べること。
pub(crate) fn all_datasets() -> &'static [YearDataset] {
    static DATASETS: LazyLock<Vec<YearDataset>> = LazyLock::new(|| vec![ds_2024(), ds_2025()]);
    &DATASETS[..]
}

pub(crate) fn nd(y: i32, m: u32, d: u32) -> NaiveDate {
    NaiveDate::from_ymd_opt(y, m, d).expect("invalid date in dataset")
}

/// 令和7年度(2025年版)
///
/// 出典: 厚生労働省「令和7年度 地域別最低賃金 全国一覧」
/// <https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/koyou_roudou/roudoukijun/minimumichiran/>
fn ds_2025() -> YearDataset {
    YearDataset {
        year: 2025,
        effective_from: nd(2025, 10, 1),
        rates: vec![
            (1, nd(2025, 10, 4), 1075),   // 北海道
            (2, nd(2025, 11, 21), 1029),  // 青森県
            (3, nd(2025, 12, 1), 1031),   // 岩手県
            (4, nd(2025, 10, 4), 1038),   // 宮城県
            (5, nd(2026, 3, 31), 1031),   // 秋田県
            (6, nd(2025, 12, 23), 1032),  // 山形県
            (7, nd(2026, 1, 1), 1033),    // 福島県
            (8, nd(2025, 10, 12), 1074),  // 茨城県
            (9, nd(2025, 10, 1), 1068),   // 栃木県
            (10, nd(2026, 3, 1), 1063),   // 群馬県
            (11, nd(2025, 11, 1), 1141),  // 埼玉県
            (12, nd(2025, 10, 3), 1140),  // 千葉県
            (13, nd(2025, 10, 3), 1226),  // 東京都
            (14, nd(2025, 10, 4), 1225),  // 神奈川県
            (15, nd(2025, 10, 2), 1050),  // 新潟県
            (16, nd(2025, 10, 12), 1062), // 富山県
            (17, nd(2025, 10, 8), 1054),  // 石川県
            (18, nd(2025, 10, 8), 1053),  // 福井県
            (19, nd(2025, 12, 1), 1052),  // 山梨県
            (20, nd(2025, 10, 3), 1061),  // 長野県
            (21, nd(2025, 10, 18), 1065), // 岐阜県
            (22, nd(2025, 11, 1), 1097),  // 静岡県
            (23, nd(2025, 10, 18), 1140), // 愛知県
            (24, nd(2025, 11, 21), 1087), // 三重県
            (25, nd(2025, 10, 5), 1080),  // 滋賀県
            (26, nd(2025, 11, 21), 1122), // 京都府
            (27, nd(2025, 10, 16), 1177), // 大阪府
            (28, nd(2025, 10, 4), 1116),  // 兵庫県
            (29, nd(2025, 11, 16), 1051), // 奈良県
            (30, nd(2025, 11, 1), 1045),  // 和歌山県
            (31, nd(2025, 10, 4), 1030),  // 鳥取県
            (32, nd(2025, 11, 17), 1033), // 島根県
            (33, nd(2025, 12, 1), 1047),  // 岡山県
            (34, nd(2025, 11, 1), 1085),  // 広島県
            (35, nd(2025, 10, 16), 1043), // 山口県
            (36, nd(2026, 1, 1), 1046),   // 徳島県
            (37, nd(2025, 10, 18), 1036), // 香川県
            (38, nd(2025, 12, 1), 1033),  // 愛媛県
            (39, nd(2025, 12, 1), 1023),  // 高知県
            (40, nd(2025, 11, 16), 1057), // 福岡県
            (41, nd(2025, 11, 21), 1030), // 佐賀県
            (42, nd(2025, 12, 1), 1031),  // 長崎県
            (43, nd(2026, 1, 1), 1034),   // 熊本県
            (44, nd(2026, 1, 1), 1035),   // 大分県
            (45, nd(2025, 11, 16), 1023), // 宮崎県
            (46, nd(2025, 11, 1), 1026),  // 鹿児島県
            (47, nd(2025, 12, 1), 1023),  // 沖縄県
        ],
    }
}

/// 令和6年度(2024年版)
///
/// 出典: 厚生労働省「令和6年度 地域別最低賃金 全国一覧」
fn ds_2024() -> YearDataset {
    YearDataset {
        year: 2024,
        effective_from: nd(2024, 10, 1),
        rates: vec![
            (1, nd(2024, 10, 1), 1010),  // 北海道
            (2, nd(2024, 10, 5), 953),   // 青森県
            (3, nd(2024, 10, 27), 952),  // 岩手県
            (4, nd(2024, 10, 1), 973),   // 宮城県
            (5, nd(2024, 10, 1), 951),   // 秋田県
            (6, nd(2024, 10, 19), 955),  // 山形県
            (7, nd(2024, 10, 5), 955),   // 福島県
            (8, nd(2024, 10, 1), 1005),  // 茨城県
            (9, nd(2024, 10, 1), 1004),  // 栃木県
            (10, nd(2024, 10, 4), 985),  // 群馬県
            (11, nd(2024, 10, 1), 1078), // 埼玉県
            (12, nd(2024, 10, 1), 1076), // 千葉県
            (13, nd(2024, 10, 1), 1163), // 東京都
            (14, nd(2024, 10, 1), 1162), // 神奈川県
            (15, nd(2024, 10, 1), 985),  // 新潟県
            (16, nd(2024, 10, 1), 998),  // 富山県
            (17, nd(2024, 10, 5), 984),  // 石川県
            (18, nd(2024, 10, 5), 984),  // 福井県
            (19, nd(2024, 10, 1), 988),  // 山梨県
            (20, nd(2024, 10, 1), 998),  // 長野県
            (21, nd(2024, 10, 1), 1001), // 岐阜県
            (22, nd(2024, 10, 1), 1034), // 静岡県
            (23, nd(2024, 10, 1), 1077), // 愛知県
            (24, nd(2024, 10, 1), 1023), // 三重県
            (25, nd(2024, 10, 1), 1017), // 滋賀県
            (26, nd(2024, 10, 1), 1058), // 京都府
            (27, nd(2024, 10, 1), 1114), // 大阪府
            (28, nd(2024, 10, 1), 1052), // 兵庫県
            (29, nd(2024, 10, 1), 986),  // 奈良県
            (30, nd(2024, 10, 1), 980),  // 和歌山県
            (31, nd(2024, 10, 5), 957),  // 鳥取県
            (32, nd(2024, 10, 12), 962), // 島根県
            (33, nd(2024, 10, 2), 982),  // 岡山県
            (34, nd(2024, 10, 1), 1020), // 広島県
            (35, nd(2024, 10, 1), 979),  // 山口県
            (36, nd(2024, 11, 1), 980),  // 徳島県
            (37, nd(2024, 10, 2), 970),  // 香川県
            (38, nd(2024, 10, 13), 956), // 愛媛県
            (39, nd(2024, 10, 9), 952),  // 高知県
            (40, nd(2024, 10, 5), 992),  // 福岡県
            (41, nd(2024, 10, 17), 956), // 佐賀県
            (42, nd(2024, 10, 12), 953), // 長崎県
            (43, nd(2024, 10, 5), 952),  // 熊本県
            (44, nd(2024, 10, 5), 954),  // 大分県
            (45, nd(2024, 10, 5), 952),  // 宮崎県
            (46, nd(2024, 10, 5), 953),  // 鹿児島県
            (47, nd(2024, 10, 9), 952),  // 沖縄県
        ],
    }
}