defmodule ExshomeClock.Web.View do @moduledoc """ View module for Clock app. """ use ExshomeWeb, :view def format_time(%DateTime{} = data), do: Calendar.strftime(data, "%X") def format_date(%DateTime{} = data), do: Calendar.strftime(data, "%B %d, %Y") @doc """ Calculates degree for clock hand rotation. value - current value for a clock hand. ratio - how much child clock hand progressed. max_value - maximum value for a clock hand. """ def clock_hand_rotation(value, ratio, max_value) when is_integer(value) and is_integer(max_value) and is_float(ratio) do current = value * 360 / max_value next = (value + 1) * 360 / max_value extra = abs(next - current) * ratio current + extra end end