[][src]Crate date_calculations

This crate provides helper functions for calculating shifts in Chrono's NaiveDate values for various periods (week, month, quarter, year) for common shifts in direction (beginning_of_, end_of_, previous_, and next_).

The dates passed to these functions should be Gregorian dates to ensure proper calcuation.

use chrono::prelude::*;
use date_calculations::*;

let twenty_twenty_one = NaiveDate::from_ymd_opt(2021, 1, 31).unwrap();

assert_eq!(next_year(&twenty_twenty_one).unwrap().year(), 2022);
assert_eq!(next_year(&twenty_twenty_one).unwrap().month(), 1);
assert_eq!(next_year(&twenty_twenty_one).unwrap().day(), 1);

assert_eq!(previous_quarter(&twenty_twenty_one).unwrap().year(), 2020);
assert_eq!(previous_quarter(&twenty_twenty_one).unwrap().month(), 10);
assert_eq!(previous_quarter(&twenty_twenty_one).unwrap().day(), 1);

Functions

beginning_of_month

Returns the first day of the current month and year.

beginning_of_quarter

Returns the first day of the current quarter and year.

beginning_of_week

Returns the beginning of the week relative to the provided date.

beginning_of_year

Returns the first day of the year (January 1) of the current year.

end_of_month

Returns the last day of the current month and year.

end_of_quarter

Returns the last day of the current quarter and year.

end_of_week

Returns the end of the week relative to the provided date.

end_of_year

Returns the last day of the year (December 31) of the current year.

next_month

Returns the first day of the next month.

next_quarter

Returns the first day of the next quarter.

next_week

Returns the beginning of the next week.

next_year

Returns the first day of the year (January 1) of the next year.

previous_month

Returns the first day of the previous month.

previous_quarter

Returns the first day of the previous quarter.

previous_week

Returns the end of the next week.

previous_year

Returns the first day of the year (January 1) of the previous year.