Current section
Files
Jump to
Current section
Files
src/blah@time.erl
-module(blah@time).
-compile([no_auto_import, nowarn_unused_vars]).
-export([in_interval/2, past/2, future/2, symmetric/1]).
-spec in_interval(birl@time:time(), birl@time:time()) -> birl@time:time().
in_interval(From, To) ->
Unix_from = birl@time:to_unix(From),
Unix_to = birl@time:to_unix(To),
_pipe = gleam@int:random(Unix_from, Unix_to),
birl@time:from_unix(_pipe).
-spec past(birl@duration:duration(), birl@duration:duration()) -> birl@time:time().
past(Min_distance, Max_distance) ->
Now = birl@time:now(),
Unix_from = begin
_pipe = Now,
_pipe@1 = birl@time:subtract(_pipe, Max_distance),
birl@time:to_unix(_pipe@1)
end,
Unix_to = begin
_pipe@2 = Now,
_pipe@3 = birl@time:subtract(_pipe@2, Min_distance),
birl@time:to_unix(_pipe@3)
end,
_pipe@4 = gleam@int:random(Unix_from, Unix_to),
birl@time:from_unix(_pipe@4).
-spec future(birl@duration:duration(), birl@duration:duration()) -> birl@time:time().
future(Min_distance, Max_distance) ->
Now = birl@time:now(),
Unix_from = begin
_pipe = Now,
_pipe@1 = birl@time:add(_pipe, Min_distance),
birl@time:to_unix(_pipe@1)
end,
Unix_to = begin
_pipe@2 = Now,
_pipe@3 = birl@time:add(_pipe@2, Max_distance),
birl@time:to_unix(_pipe@3)
end,
_pipe@4 = gleam@int:random(Unix_from, Unix_to),
birl@time:from_unix(_pipe@4).
-spec symmetric(birl@duration:duration()) -> birl@time:time().
symmetric(Distance) ->
case gleam@int:random(-1, 2) > 0 of
true ->
future({duration, 0}, Distance);
_ ->
past({duration, 0}, Distance)
end.