Packages
tz_extra
0.1.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.1
0.22.0
0.21.1
0.21.0
0.20.1
0.20.0
0.17.0
0.16.7
0.16.6
0.16.5
0.16.3
0.16.2
0.16.1
0.16.0
0.15.1
0.15.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Time zone-related utilities
Current section
Files
Jump to
Current section
Files
lib/helper.ex
defmodule TzExtra.Helper do
@moduledoc false
def find_latest_std_offset_for_periods([%{to: :max} = period1, %{to: :max} = period2 | _]) do
Enum.max([period1.std_offset, period2.std_offset])
end
def find_latest_std_offset_for_periods([period | _]) do
period.std_offset
end
def find_latest_utc_offset_for_periods([period | _]) do
period.utc_offset
end
def offset_to_string(seconds) do
string =
abs(seconds)
|> :calendar.seconds_to_time()
|> do_offset_to_string()
|> List.to_string()
if(seconds < 0, do: "-", else: "+") <> string
end
defp do_offset_to_string({h, m, 0}), do: :io_lib.format("~2..0B:~2..0B", [h, m])
defp do_offset_to_string({h, m, s}), do: :io_lib.format("~2..0B:~2..0B:~2..0B", [h, m, s])
end