| //! Utility functions. |
| |
| pub use time_core::util::{days_in_year, is_leap_year, weeks_in_year}; |
| |
| use crate::Month; |
| |
| /// Whether to adjust the date, and in which direction. Useful when implementing arithmetic. |
| pub(crate) enum DateAdjustment { |
| /// The previous day should be used. |
| Previous, |
| /// The next day should be used. |
| Next, |
| /// The date should be used as-is. |
| None, |
| } |
| |
| /// Get the number of days in the month of a given year. |
| /// |
| /// ```rust |
| /// # use time::{Month, util}; |
| /// assert_eq!(util::days_in_year_month(2020, Month::February), 29); |
| /// ``` |
| pub const fn days_in_year_month(year: i32, month: Month) -> u8 { |
| use Month::*; |
| match month { |
| January | March | May | July | August | October | December => 31, |
| April | June | September | November => 30, |
| February if is_leap_year(year) => 29, |
| February => 28, |
| } |
| } |