tavern_keeper/src/time.rs

32 lines
706 B
Rust

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 }
}
}