Sha256: 1b78c751414c8bf861f2c8384775dcfa3e6a723e499eafe89af33e2510be970e

Contents?: true

Size: 681 Bytes

Versions: 145

Compression:

Stored size: 681 Bytes

Contents

using System;

public struct Clock
{
    public Clock(int hours, int minutes = 0)
    {
        Hours = Mod((hours * 60 + minutes) / 60.0, 24);
        Minutes = Mod(minutes, 60);
    }
    
    public int Hours { get; }

    public int Minutes { get; }

    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

145 entries across 145 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.179 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.178 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.177 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.176 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.175 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.174 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.173 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.172 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.171 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.170 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.169 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.167 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.166 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.165 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.164 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.163 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.162 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.161 tracks/csharp/exercises/clock/Example.cs
trackler-2.2.1.160 tracks/csharp/exercises/clock/Example.cs