2022-12-31 07:54:18 +00:00
|
|
|
use std::fmt;
|
|
|
|
|
|
|
|
#[derive(Clone, Copy)]
|
|
|
|
pub struct Time{
|
2023-01-01 20:11:27 +00:00
|
|
|
pub time: i32,
|
2022-12-31 07:54:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-31 08:38:01 +00:00
|
|
|
impl Time {
|
2023-01-01 20:11:27 +00:00
|
|
|
pub fn substract_years(&self, years: i32) -> Time {
|
2022-12-31 08:38:01 +00:00
|
|
|
Time { time: self.time - years * 360 }
|
|
|
|
}
|
2023-01-01 20:11:27 +00:00
|
|
|
|
|
|
|
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 }
|
|
|
|
}
|
2022-12-31 08:38:01 +00:00
|
|
|
}
|
|
|
|
|