Sha256: 9a57ea1f5f738cdf7455c7198da2a92cfbfe09e91e516b57f94e28ee911b3f7a

Contents?: true

Size: 909 Bytes

Versions: 310

Compression:

Stored size: 909 Bytes

Contents

-module(example).

-export([create/2,
         is_equal/2,
         minutes_add/2,
         to_string/1,
         test_version/0]).

-record(?MODULE, {normalized}).

-define(HOURS_PER_DAY, 24).
-define(MINUTES_PER_HOUR, 60).
-define(MINUTES_PER_DAY, (?HOURS_PER_DAY * ?MINUTES_PER_HOUR)).


create(Hour, Minutes) ->
  #?MODULE{normalized = mod(Hour * ?MINUTES_PER_HOUR + Minutes, ?MINUTES_PER_DAY)}.

is_equal(C, C) ->
  true;
is_equal(_, _) ->
  false.

minutes_add(#?MODULE{normalized = Mins}, Minutes) ->
  TotalMinutes = mod(Mins + Minutes, ?MINUTES_PER_DAY),
  #?MODULE{normalized = TotalMinutes}.

to_string(#?MODULE{normalized = Mins}) ->
  Hour = Mins div ?MINUTES_PER_HOUR,
  Minutes = Mins rem ?MINUTES_PER_HOUR,
  lists:flatten(io_lib:format("~2.10.0b:~2.10.0b", [Hour, Minutes])).

test_version() ->
    1.



mod(X, Y) when X > 0 -> X rem Y;
mod(X, Y) when X < 0 -> Y + X rem Y;
mod(0, _Y) -> 0.

Version data entries

310 entries across 310 versions & 1 rubygems

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