use core::fmt;
use super::Date;
impl fmt::Display for Date {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let (year, month, day) = (self.year(), u8::from(self.month()), self.day());
write!(f, "{year:04}-{month:02}-{day:02}")
}
}
#[cfg(test)]
mod tests {
use time::macros::date;
use super::*;
#[test]
fn debug() {
assert_eq!(format!("{:?}", Date::MIN), "Date(33)");
assert_eq!(
format!("{:?}", Date::from_date(date!(2002-11-26)).unwrap()),
"Date(11642)"
);
assert_eq!(
format!("{:?}", Date::from_date(date!(2018-11-17)).unwrap()),
"Date(19825)"
);
assert_eq!(format!("{:?}", Date::MAX), "Date(65439)");
}
#[test]
fn display() {
assert_eq!(format!("{}", Date::MIN), "1980-01-01");
assert_eq!(
format!("{}", Date::from_date(date!(2002-11-26)).unwrap()),
"2002-11-26"
);
assert_eq!(
format!("{}", Date::from_date(date!(2018-11-17)).unwrap()),
"2018-11-17"
);
assert_eq!(format!("{}", Date::MAX), "2107-12-31");
}
}