當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。