Current section

Files

Jump to
timex lib timex constants.ex
Raw

lib/timex/constants.ex

defmodule Timex.Constants do
@moduledoc false
defmacro __using__(_) do
quote do
@weekday_abbrs ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
@weekday_abbrs_lower ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]
@weekday_names ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
@weekday_names_lower ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
@weekdays Enum.map(Enum.with_index(@weekday_names), fn {name, i} -> {name, i + 1} end)
@month_names [
"January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December"
]
@months Enum.map(Enum.with_index(@month_names), fn {name, i} -> {name, i + 1} end)
@valid_months 1..12
@ordinal_day_map [
{true, 1, 0}, {false, 1, 0},
{true, 2, 31}, {false, 2, 31},
{true, 3, 60}, {false, 3, 59},
{true, 4, 91}, {false, 4, 90},
{true, 5, 121}, {false, 5, 120},
{true, 6, 152}, {false, 6, 151},
{true, 7, 182}, {false, 7, 181},
{true, 8, 213}, {false, 8, 212},
{true, 9, 244}, {false, 9, 243},
{true, 10, 274}, {false, 10, 273},
{true, 11, 305}, {false, 11, 304},
{true, 12, 335}, {false, 12, 334}
]
@usecs_in_sec 1_000_000
@usecs_in_msec 1_000
@msecs_in_sec 1_000
@secs_in_min 60
@secs_in_hour @secs_in_min * 60
@secs_in_day @secs_in_hour * 24
@secs_in_week @secs_in_day * 7
@million 1_000_000
end
end
end