NeoFaker.Date (neo_faker v0.10.0)

View Source

Functions for generating random dates.

This module provides utilities to generate random dates, including dates within a specific range, birthdays, and more.

Summary

Functions

add(range \\ -365..365, opts \\ [])

(since 0.9.0)
@spec add(Range.t(), Keyword.t()) :: Date.t() | String.t()

Generates a random date.

Returns a date within the default range of 365 days before and 365 days after today.

Options

  • :format - Specifies the format of the date.

The values for :format can be:

  • :sigil - Returns the date in sigil ~D format (default).
  • :iso8601 - Returns the date in ISO 8601 format.

Examples

iex> NeoFaker.Date.add()
~D[2025-03-25]

iex> NeoFaker.Date.add(0..31)
~D[2025-03-30]

iex> NeoFaker.Date.add(0..31, format: :iso8601)
"2025-03-25"

between(start \\ ~D[1970-01-01], finish \\ local_date_now(), opts \\ [])

(since 0.9.0)
@spec between(Date.t(), Date.t(), Keyword.t()) :: Date.t() | String.t()

Generates a random date between two dates.

Returns a date between the specified start and finish dates.

Options

  • :format - Specifies the format of the date.

The values for :format can be:

  • :sigil - Returns the date in sigil ~D format (default).
  • :iso8601 - Returns the date in ISO 8601 format.

Examples

iex> NeoFaker.Date.between()
~D[2025-03-25]

iex> NeoFaker.Date.between(~D[2020-01-01], ~D[2025-01-01])
~D[2022-08-17]

iex> NeoFaker.Date.between(~D[2025-03-25], ~D[2025-03-25], format: :iso8601)
"2025-03-25"

birthday(min_age \\ 18, max_age \\ 65, opts \\ [])

(since 0.10.0)

Generates a random birthday.

Returns a birthday within the specified age range.

Options

  • :format - Specifies the format of the date.

The values for :format can be:

  • :sigil - Returns the date in sigil ~D format (default).
  • :iso8601 - Returns the date in ISO 8601 format.

Examples

iex> NeoFaker.Date.birthday()
~D[1997-01-02]

iex> NeoFaker.Date.birthday(18, 65)
~D[1998-03-04]

iex> NeoFaker.Date.birthday(18, 65, format: :iso8601)
"1999-05-06"