Crontab.DateChecker (crontab v1.2.0)

View Source

This module is used to check a Crontab.CronExpression against a given date.

Summary

Types

date()

@type date() :: NaiveDateTime.t() | DateTime.t()

Functions

matches_date?(cron_expression_or_condition_list, date)

@spec matches_date?(
  cron_expression ::
    Crontab.CronExpression.t() | Crontab.CronExpression.condition_list(),
  date :: date()
) :: boolean()

Check a condition list against a given date.

Examples

iex> Crontab.DateChecker.matches_date?(
...>   %Crontab.CronExpression{minute: [{:/, :*, 8}]},
...>   ~N[2004-04-16 04:08:08]
...> )
true

iex> Crontab.DateChecker.matches_date?(
...>   %Crontab.CronExpression{minute: [{:/, :*, 9}]},
...>   ~N[2004-04-16 04:07:08]
...> )
false

iex> Crontab.DateChecker.matches_date?(
...>   %Crontab.CronExpression{reboot: true},
...>   ~N[2004-04-16 04:07:08]
...> )
** (RuntimeError) Special identifier @reboot is not supported.

iex> Crontab.DateChecker.matches_date?([{:hour, [{:/, :*, 4}, 7]}], ~N[2004-04-16 04:07:08])
true

matches_date?(list, execution_date, ambiguity_opts)

@spec matches_date?(
  condition_list :: Crontab.CronExpression.condition_list(),
  date :: date(),
  ambiguity_opts :: [Crontab.CronExpression.ambiguity_opt()]
) :: boolean()

matches_date?(interval, conditions, date, ambiguity_opts)

@spec matches_date?(
  interval :: Crontab.CronExpression.interval(),
  condition_list :: Crontab.CronExpression.condition_list(),
  date :: date(),
  ambiguity_opts :: [Crontab.CronExpression.ambiguity_opt()]
) :: boolean()

Check a condition against a given date.

Examples

iex> Crontab.DateChecker.matches_date?(:hour, [{:/, :*, 4}, 7], ~N[2004-04-16 04:07:08], [])
true

iex> Crontab.DateChecker.matches_date?(:hour, [8], ~N[2004-04-16 04:07:08], [])
false