当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Date.range用法及代码示例


Elixir语言中 Date.range 相关用法介绍如下。

用法一

range(first, last)
(从 1.5.0 开始)
@spec range(Calendar.date(), Calendar.date()) :: Date.Range.t()

返回日期范围。

日期范围表示离散日期数,其中第一个值和最后一个值是具有匹配日历的日期。

日期范围可以增加(first <= last)或减少(first > last)。它们也始终具有包容性。

例子

iex> Date.range(~D[1999-01-01], ~D[2000-01-01])
#DateRange<~D[1999-01-01], ~D[2000-01-01]>

日期范围实现了 Enumerable 协议,这意味着 Enum 模块中的函数可用于处理范围:

iex> range = Date.range(~D[2001-01-01], ~D[2002-01-01])
iex> Enum.count(range)
366
iex> Enum.member?(range, ~D[2001-02-01])
true
iex> Enum.take(range, 3)
[~D[2001-01-01], ~D[2001-01-02], ~D[2001-01-03]]

用法二

range(first, last, step)
(自 1.12.0 起)
@spec range(Calendar.date(), Calendar.date(), step :: pos_integer() | neg_integer()) ::
  Date.Range.t()

返回带有步骤的日期范围。

例子

iex> range = Date.range(~D[2001-01-01], ~D[2002-01-01], 2)
iex> range
#DateRange<~D[2001-01-01], ~D[2002-01-01], 2>
iex> Enum.count(range)
183
iex> Enum.member?(range, ~D[2001-01-03])
true
iex> Enum.take(range, 3)
[~D[2001-01-01], ~D[2001-01-03], ~D[2001-01-05]]

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Date.range(first, last)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。