Sha256: a71904333b44ad61c95bde4c9ad19963082b425f1a0a2f72cad9877e309fd77c

Contents?: true

Size: 702 Bytes

Versions: 171

Compression:

Stored size: 702 Bytes

Contents

use std::fmt;

#[derive(Eq,PartialEq,Debug)]
pub struct Clock {
    minutes: i32
}

impl fmt::Display for Clock {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        let hours = self.minutes / 60;
        let mins = self.minutes % 60;
        write!(f, "{:02}:{:02}", hours, mins)
    }
}

impl Clock {
    pub fn new(hour: i32, minute: i32) -> Self {
        Clock::build(hour * 60 + minute)
    }

    fn build(minutes: i32) -> Self {
        let mut mins = minutes;
        while mins < 0 {
            mins += 1440;
        }
        Clock { minutes: mins % 1440 }
    }

    pub fn add_minutes(&mut self, minutes: i32) -> Self {
        Clock::build(self.minutes + minutes)
    }
}

Version data entries

171 entries across 171 versions & 1 rubygems

Version Path
trackler-2.2.1.179 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.178 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.177 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.176 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.175 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.174 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.173 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.172 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.171 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.170 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.169 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.167 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.166 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.165 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.164 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.163 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.162 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.161 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.160 tracks/rust/exercises/clock/example.rs
trackler-2.2.1.159 tracks/rust/exercises/clock/example.rs