-module(blah@time). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]). -export([in_interval/2, symmetric/1, past/2, future/2]). -spec in_interval(birl:time(), birl:time()) -> birl:time(). in_interval(From, To) -> Unix_from = birl:to_unix(From), Unix_to = birl:to_unix(To), _pipe = gleam@int:random(Unix_from, Unix_to), birl:from_unix(_pipe). -spec symmetric(birl@duration:duration()) -> birl:time(). symmetric(Distance) -> Now = birl:now(), _pipe@4 = gleam@int:random( begin _pipe = Now, _pipe@1 = birl:subtract(_pipe, Distance), birl:to_unix(_pipe@1) end, begin _pipe@2 = Now, _pipe@3 = birl:add(_pipe@2, Distance), birl:to_unix(_pipe@3) end ), birl:from_unix(_pipe@4). -spec past(birl@duration:duration(), birl@duration:duration()) -> birl:time(). past(Min_distance, Max_distance) -> Now = birl:now(), _pipe@4 = gleam@int:random( begin _pipe = Now, _pipe@1 = birl:subtract(_pipe, Max_distance), birl:to_unix(_pipe@1) end, begin _pipe@2 = Now, _pipe@3 = birl:subtract(_pipe@2, Min_distance), birl:to_unix(_pipe@3) end ), birl:from_unix(_pipe@4). -spec future(birl@duration:duration(), birl@duration:duration()) -> birl:time(). future(Min_distance, Max_distance) -> Now = birl:now(), _pipe@4 = gleam@int:random( begin _pipe = Now, _pipe@1 = birl:add(_pipe, Min_distance), birl:to_unix(_pipe@1) end, begin _pipe@2 = Now, _pipe@3 = birl:add(_pipe@2, Max_distance), birl:to_unix(_pipe@3) end ), birl:from_unix(_pipe@4).