Skip to main content

dos_date_time/dos_date_time/
consts.rs

1// SPDX-FileCopyrightText: 2025 Shun Sakai
2//
3// SPDX-License-Identifier: Apache-2.0 OR MIT
4
5//! Constants for [`DateTime`].
6
7use super::DateTime;
8use crate::{Date, Time};
9
10impl DateTime {
11    /// The smallest value that can be represented by MS-DOS date and time.
12    ///
13    /// This is "1980-01-01 00:00:00".
14    ///
15    /// # Examples
16    ///
17    /// ```
18    /// # use dos_date_time::{
19    /// #     DateTime,
20    /// #     time::{Time, macros::date},
21    /// # };
22    /// #
23    /// assert_eq!(
24    ///     DateTime::MIN,
25    ///     DateTime::from_date_time(date!(1980-01-01), Time::MIDNIGHT).unwrap()
26    /// );
27    /// ```
28    pub const MIN: Self = Self::new(Date::MIN, Time::MIN);
29
30    /// The largest value that can be represented by MS-DOS date and time.
31    ///
32    /// This is "2107-12-31 23:59:58".
33    ///
34    /// # Examples
35    ///
36    /// ```
37    /// # use dos_date_time::{
38    /// #     DateTime,
39    /// #     time::macros::{date, time},
40    /// # };
41    /// #
42    /// assert_eq!(
43    ///     DateTime::MAX,
44    ///     DateTime::from_date_time(date!(2107-12-31), time!(23:59:58)).unwrap()
45    /// );
46    /// ```
47    pub const MAX: Self = Self::new(Date::MAX, Time::MAX);
48}
49
50#[cfg(test)]
51mod tests {
52    use time::macros::{date, time};
53
54    use super::*;
55
56    #[test]
57    fn min() {
58        assert_eq!(
59            DateTime::MIN,
60            DateTime::from_date_time(date!(1980-01-01), time::Time::MIDNIGHT).unwrap()
61        );
62    }
63
64    #[test]
65    fn max() {
66        assert_eq!(
67            DateTime::MAX,
68            DateTime::from_date_time(date!(2107-12-31), time!(23:59:58)).unwrap()
69        );
70    }
71}