tavern_keeper/src/time.rs

32 lines
706 B
Rust
Raw Normal View History

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
}