Skip to content

whitered/interval_sigil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interval sigils and conversion utilities

Library for defining and converting time intervals.

Features

  • Definition of time intervals in a human-readable format.
  • Conversion intervals to various units, including fractional values.
  • Support for multiple time units within a single definition.

Examples

Default conversion to milliseconds

    iex> import IntervalSigil
    iex> ~i"2m 15s"
    135000

Conversion to alternative units

    iex> ~i"2m 15s"s
    135

Floating-point results with uppercase sigil ~I

    iex> ~I"6D"M
    0.2 # Converts days to months (1 month = 30 days)

    iex> ~I"75s"m
    1.25 # Converts seconds to minutes

Explicit functions to_integer and to_float to convert time intervals

    iex> IntervalSigil.to_integer("3h 15m")
    11700000

    iex> IntervalSigil.to_integer("3h 15m", "h")
    3

    iex> IntervalSigil.to_float("3h 15m", "h")
    3.25

Supported Units

  • nanosecond (ns)
  • microsecond (us)
  • millisecond (ms, default)
  • second (s)
  • minute (m)
  • hour (h)
  • day (D)
  • week (W)
  • month (M, =30 days)
  • year (Y, =365 days)

Additional Information

  • Intervals can include multiple units ordered from largest to smallest, either separated by spaces (e.g., ~i"1h 30m") or combined (e.g., ~i"1h30m").
  • The ~i sigil converts to integer values, while ~I provides fractional results.

Installation

def deps do
  [
    {:interval_sigil, "~> 0.1.1"}
  ]
end

The docs can be found at https://hexdocs.pm/interval_sigil.

About

Interval sigils and conversion utilities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages