@@ -74,12 +74,12 @@ impl DateTimeIncrementor {
74 (true, false) => {
74 (true, false) => {
75 let date = NaiveDate::parse_from_str(date_time, format.fmt).ok()?;
75 let date = NaiveDate::parse_from_str(date_time, format.fmt).ok()?;
77− date.and_hms(0, 0, 0)
77+ date.and_hms_opt(0, 0, 0).unwrap()
79 (false, true) => {
79 (false, true) => {
80 let time = NaiveTime::parse_from_str(date_time, format.fmt).ok()?;
80 let time = NaiveTime::parse_from_str(date_time, format.fmt).ok()?;
82− NaiveDate::from_ymd(0, 1, 1).and_time(time)
82+ NaiveDate::from_ymd_opt(0, 1, 1).unwrap().and_time(time)
84 (false, false) => return None,
84 (false, false) => return None,
@@ -312,10 +312,10 @@ fn ndays_in_month(year: i32, month: u32) -> u32 {
313 (year, month + 1)
313 (year, month + 1)
315− let d = NaiveDate::from_ymd(y, m, 1);
315+ let d = NaiveDate::from_ymd_opt(y, m, 1).unwrap();
317 // ...is preceded by the last day of the original month.
317 // ...is preceded by the last day of the original month.
318− d.pred().day()
318+ d.pred_opt().unwrap().day()
321fn add_months(date_time: NaiveDateTime, amount: i64) -> Option<NaiveDateTime> {
321fn add_months(date_time: NaiveDateTime, amount: i64) -> Option<NaiveDateTime> {
@@ -334,7 +334,7 @@ fn add_months(date_time: NaiveDateTime, amount: i64) -> Option<NaiveDateTime> {
335 let day = cmp::min(date_time.day(), ndays_in_month(year, month));
335 let day = cmp::min(date_time.day(), ndays_in_month(year, month));
337− Some(NaiveDate::from_ymd(year, month, day).and_time(date_time.time()))
337+ NaiveDate::from_ymd_opt(year, month, day).map(|date| date.and_time(date_time.time()))
340fn add_years(date_time: NaiveDateTime, amount: i64) -> Option<NaiveDateTime> {
340fn add_years(date_time: NaiveDateTime, amount: i64) -> Option<NaiveDateTime> {
@@ -342,8 +342,8 @@ fn add_years(date_time: NaiveDateTime, amount: i64) -> Option<NaiveDateTime> {
342 let ndays = ndays_in_month(year, date_time.month());
342 let ndays = ndays_in_month(year, date_time.month());
344 if date_time.day() > ndays {
344 if date_time.day() > ndays {
345− let d = NaiveDate::from_ymd(year, date_time.month(), ndays);
345+ NaiveDate::from_ymd_opt(year, date_time.month(), ndays)
346− Some(d.succ().and_time(date_time.time()))
346+ .and_then(|date| date.succ_opt().map(|date| date.and_time(date_time.time())))
348 date_time.with_year(year)
348 date_time.with_year(year)