use std::fmt; #[derive(Clone, Copy)] pub struct Time{ pub time: i32, } impl fmt::Display for Time { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let year = self.time / 360; let month = (self.time / 30) % 12; let day = self.time % 30; write!(f, "Year {}, {} of {}", year, day, month) } } impl Time { pub fn substract_years(&self, years: i32) -> Time { Time { time: self.time - years * 360 } } pub(crate) fn add_days(&self, gen_range: i32) -> Time { Time { time: self.time + gen_range as i32 } } pub(crate) fn add_years(&self, arg: i32) -> Time { Time { time: self.time + arg as i32 * 360 } } }