微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为Chrono NaiveDate添加月份?

如何解决如何为Chrono NaiveDate添加月份?

我尝试创建日期选择器,并且需要在日期月份之间导航


let current = NaiveDate::parse_from_str("2020-10-15","%Y-%m-%d").unwrap();

如何生成打击日期

2020-11-15

解决方法

可以解析该字符串,并使用month + 1

来创建另一个日期。
use chrono::{NaiveDate,Datelike};

fn main() {

    let naive = NaiveDate::parse_from_str("2020-10-15","%Y-%m-%d").unwrap();
    let another = NaiveDate::from_ymd(naive.year(),naive.month() + 1,naive.day());
    
    println!("{:?}",another);
}

playground

通过添加Duration::days(integer)还有另一种选择,但是一个人需要知道一个月中有多少天。

use chrono::{ NaiveDate,Duration};

fn main() {

    let naive = NaiveDate::parse_from_str("2020-10-15","%Y-%m-%d").unwrap() ;
    let another = naive + Duration::days(31);
    
    println!("{:?}",another);
}

playground

这是在第12个月之后添加月份的简单条件分支:

use chrono::{NaiveDate,Datelike};

fn main() {

    let naive = NaiveDate::parse_from_str("2020-12-15","%Y-%m-%d").unwrap();
    let mut y = naive.year();
    let mut m = naive.month();
    let d = naive.day();
    if naive.month() == 12 {
        y += 1;
        m = 1;
    } else {
        m += 1;
    }
    let another = NaiveDate::from_ymd(y,m,d);
    
    println!("{:?}",another);
}

playground

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。