首页 文章

如何获得Rust一个月的天数?

提问于
浏览
0

是否有一种惯用的Rust方法来获取给定月份的天数?我看过时计,但我没有在文档中找到任何内容 .

我正在寻找可以管理闰年的东西,类似于Python中的 calendar.monthrange 或C#中的 DateTime.DaysInMonth .

1 回答

  • 1

    您可以使用chrono crate中的NaiveDate::signed_duration_since

    use chrono::NaiveDate;
    
    fn main() {
        let year = 2018;
        for (m, d) in (1..=12).map(|m| {
            (
                m,
                if m == 12 {
                    NaiveDate::from_ymd(year + 1, 1, 1)
                } else {
                    NaiveDate::from_ymd(year, m + 1, 1)
                }.signed_duration_since(NaiveDate::from_ymd(year, m, 1))
                .num_days(),
            )
        }) {
            println!("days {} in month {}", d, m);
        }
    }
    

相关问题