Для определения количества дней в месяце на языке программирования Rust можно использовать встроенную библиотеку хроно. Вот несколько методов, которые вы можете использовать:
-
Использование перечисления
Monthиз библиотеки хронографа:use chrono::{Month, NaiveDate}; fn get_days_in_month(year: i32, month: Month) -> u32 { let date = NaiveDate::from_ymd_opt(year, month.number_from_month(), 1); match date { Some(date) => date.with_day0(0).num_days_from_ce() as u32, None => 0, } }Пример использования:
fn main() { let year = 2024; let month = Month::January; let days_in_month = get_days_in_month(year, month); println!("Number of days in {} {}: {}", month, year, days_in_month); } -
Использование метода
Month::days_in_month():use chrono::Month; fn get_days_in_month(year: i32, month: Month) -> u32 { month.days_in_month(year) }Пример использования:
fn main() { let year = 2024; let month = Month::January; let days_in_month = get_days_in_month(year, month); println!("Number of days in {} {}: {}", month, year, days_in_month); } -
Использование метода
NaiveDate::signed_duration_since():use chrono::{Month, NaiveDate}; fn get_days_in_month(year: i32, month: Month) -> u32 { let start_date = NaiveDate::from_ymd(year, month.number_from_month(), 1); let end_date = NaiveDate::from_ymd(year, month.number_from_month() + 1, 1); let duration = end_date.signed_duration_since(start_date); duration.num_days() as u32 }Пример использования:
fn main() { let year = 2024; let month = Month::January; let days_in_month = get_days_in_month(year, month); println!("Number of days in {} {}: {}", month, year, days_in_month); }