• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sgobotta / ex_finance / c09047772e115b518d19e12105ba85116458e179-PR-23

23 Oct 2025 12:18AM UTC coverage: 49.21% (+0.007%) from 49.203%
c09047772e115b518d19e12105ba85116458e179-PR-23

Pull #23

github

sgobotta
Add support to update prices on keybindings
Pull Request #23: Currency list and banner ui enhancements

685 of 1392 relevant lines covered (49.21%)

20.7 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

76.47
//lib/ex_finance_web/utils/datetime_utils.ex
1
defmodule ExFinanceWeb.Utils.DatetimeUtils do
2
  @moduledoc false
3

4
  @spec human_readable_datetime(DateTime.t(), Keyword.t()) :: String.t()
5
  def human_readable_datetime(datetime, opts \\ []) do
4✔
6
    if opts[:shift_timezone] do
4✔
7
      {:ok, datetime} = DateTime.shift_zone(datetime, timezone())
×
8
      parse_datetime(datetime, opts)
×
9
    else
10
      parse_datetime(datetime, opts)
4✔
11
    end
12
  end
13

14
  @spec parse_datetime(DateTime.t(), Keyword.t()) :: String.t()
15
  defp parse_datetime(datetime, opts) do
16
    if opts[:only_date] do
4✔
17
      parse_date(datetime)
×
18
    else
19
      parse_full_datetime(datetime)
4✔
20
    end
21
  end
22

23
  @spec parse_date(DateTime.t()) :: String.t()
24
  defp parse_date(datetime) do
25
    "#{datetime.day}/#{datetime.month}/#{datetime.year}"
4✔
26
  end
27

28
  @spec parse_time(DateTime.t()) :: String.t()
29
  defp parse_time(datetime) do
30
    hour = maybe_fill_datetime_value(datetime.hour)
4✔
31
    minute = maybe_fill_datetime_value(datetime.minute)
4✔
32
    "#{hour}:#{minute}"
4✔
33
  end
34

35
  @spec maybe_fill_datetime_value(integer()) :: String.t()
36
  defp maybe_fill_datetime_value(value),
37
    do: if(value < 10, do: "0#{value}", else: "#{value}")
8✔
38

39
  @spec parse_full_datetime(DateTime.t()) :: String.t()
40
  defp parse_full_datetime(datetime) do
41
    date = parse_date(datetime)
4✔
42
    time = parse_time(datetime)
4✔
43
    "#{date} #{time}"
4✔
44
  end
45

46
  @spec timezone() :: String.t()
47
  def timezone, do: System.get_env("TZ", "America/Buenos_Aires")
×
48
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc