Sha256: 46da9ec78ebaf04191c25e876c067e053038ff83be9e5abb2925ffbc83858205

Contents?: true

Size: 675 Bytes

Versions: 251

Compression:

Stored size: 675 Bytes

Contents

public struct Clock
{
    private readonly int hours;
    private readonly int minutes;

    public Clock(int hours, int minutes = 0)
    {
        this.hours = Mod((hours * 60 + minutes) / 60.0, 24);
        this.minutes = Mod(minutes, 60);
    }

    public Clock Add(int minutesToAdd)
    {
        return new Clock(hours, minutes + minutesToAdd);
    }

    public Clock Subtract(int minutesToSubtract)
    {
        return new Clock(hours, minutes - minutesToSubtract);
    }

    public override string ToString()
    {
        return $"{hours:00}:{minutes:00}";
    }

    private static int Mod(double x, double y)
    {
        return (int)((x % y + y) % y);
    }
}

Version data entries

251 entries across 251 versions & 1 rubygems

Version Path
trackler-2.2.1.33 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.32 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.31 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.30 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.29 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.28 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.27 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.26 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.25 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.24 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.23 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.22 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.21 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.20 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.19 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.18 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.17 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.16 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.15 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.14 tracks/csharp/exercises/clock/Example.cs