Packages
timex
0.13.5
3.7.13
3.7.12
3.7.11
3.7.9
3.7.8
3.7.7
3.7.6
3.7.5
3.7.3
3.7.2
3.7.1
3.7.0
3.6.4
3.6.3
3.6.2
retired
3.6.1
3.6.0
3.5.0
3.4.2
3.4.1
3.3.0
3.2.2
3.2.1
3.2.0
3.1.25
retired
3.1.24
3.1.23
3.1.22
3.1.21
3.1.20
3.1.19
3.1.18
3.1.17
3.1.16
3.1.15
3.1.13
3.1.12
3.1.11
3.1.10
3.1.9
3.1.8
3.1.7
3.1.6
3.1.5
3.1.4
3.1.3
3.1.2
3.1.1
3.1.0
3.0.8
3.0.7
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.2.1
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.0
1.0.2
1.0.1
1.0.0
1.0.0-rc4
1.0.0-rc3
1.0.0-rc2
1.0.0-rc1
1.0.0-pre
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.2
0.18.1
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.6.0
0.5.0
0.4.8
0.4.7
0.4.6
Timex is a rich, comprehensive Date/Time library for Elixir projects, with full timezone support via the :tzdata package. If you need to manipulate dates, times, datetimes, timestamps, etc., then Timex is for you!
Current section
Files
Jump to
Current section
Files
lib/time/time_formatter.ex
# WIP. Nothing interesting here
defmodule Timex.TimeFormatter do
defmacrop _MINUTE, do: 60
defmacrop _HOUR, do: _MINUTE * 60
defmacrop _DAY, do: _HOUR * 24
defmacrop _WEEK, do: _DAY * 7
defmacrop _MONTH, do: _DAY * 30
defmacrop _YEAR, do: _DAY * 365
defmacrop _DECADE, do: _YEAR * 10
defmacrop _CENTURY, do: _DECADE * 10
defmacrop _MILLENNIUM, do: _CENTURY * 10
@doc """
Return a binary containing human readable representation of the time interval.
Note that if you'd like to format a point in time rather than time interval,
you should use Date.format.
"""
def format({mega, seconds, _micro}) do
components = []
seconds = mega * 1000000 + seconds
if seconds >= _MILLENNIUM do
components = [{div(seconds, _MILLENNIUM), :millennium}|components]
seconds = rem(seconds, _MILLENNIUM)
end
if seconds >= _CENTURY do
components = [{div(seconds, _CENTURY), :century}|components]
seconds = rem(seconds, _CENTURY)
end
if seconds >= _DECADE do
components = [{div(seconds, _DECADE), :decade}|components]
seconds = rem(seconds, _DECADE)
end
if seconds >= _YEAR do
components = [{div(seconds, _YEAR), :year}|components]
seconds = rem(seconds, _YEAR)
end
if seconds >= _MONTH do
components = [{div(seconds, _MONTH), :month}|components]
seconds = rem(seconds, _MONTH)
end
if seconds >= _WEEK do
components = [{div(seconds, _WEEK), :week}|components]
seconds = rem(seconds, _WEEK)
end
if seconds >= _DAY do
components = [{div(seconds, _DAY), :day}|components]
seconds = rem(seconds, _DAY)
end
if seconds >= _HOUR do
components = [{div(seconds, _HOUR), :hour}|components]
seconds = rem(seconds, _HOUR)
end
if seconds >= _MINUTE do
components = [{div(seconds, _MINUTE), :minute}|components]
seconds = rem(seconds, _MINUTE)
end
if seconds > 0 do
components = [{seconds, :second}|components]
end
components
end
end