A basic utilities to convert tick number to a date time to use in game. It was first made to fulfill the need of city building games.
```rust // Initialize a lunar ticktime where one tick is 3600 seconds let mut ticktime = TickTime::init( 0,TickTimeType::EarthLike { secondspertick: 3600, month_type: EarthLikeMonthType::Lunar }).unwrap();
// Calling tick to simulate 40 days
for _ in 0..(24*40) {
ticktime.tick();
}
println!("Month : {} / Day: {}", ticktime.month(), ticktime.day()); // Month 1, Day 10
```
```rust // Initialize a real ticktime where one tick is 3600 seconds let mut ticktime = TickTime::init( 0,TickTimeType::EarthLike { secondspertick: 3600, month_type: EarthLikeMonthType::Real }).unwrap();
// Calling tick to simulate 40 days
for _ in 0..(24*40) {
ticktime.tick();
}
println!("Month : {} / Day: {}", ticktime.month(), ticktime.day()); // Month 1, Day 9
```
```rust // Initialize a custom ticktime where one tick is 3600 seconds // where each day is 12 hours long // and year are composed of 4 months with 1 day let mut ticktime = TickTime::init( 0,TickTimeType::Custom { secondspertick: 3600, hoursinaday: 12, monthsdurations: vec![1, 1, 1, 1], season_duration: vec![4] } ).unwrap();
// Calling tick to simulate 40 days
for _ in 0..(24*40) {
ticktime.tick();
}
println!("Year: {} / Month : {} / Day: {}",
ticktime.year(), ticktime.month(), ticktime.day()); // Year 20, Month 0, Day 0
```