Date.Range

Date.Range

두 날짜 사이의 포괄적인(inclusive) 범위를 나타내는 struct예요. 날짜 범위는 Date.range/2Date.range/3 함수로 만들어야 해요.

출처: Date.Range

본문

다음 필드들은 공개(public) 필드예요.

  • :first — 범위의 시작 날짜
  • :last — 범위의 마지막 날짜
  • :step — (v1.12.0부터) 스텝

나머지 필드는 비공개(private)라서 직접 접근하면 안 돼요.

예를 들어 날짜 범위는 Enum과 함께 쓰면 아주 유용해요. 범위 안의 각 날짜를 순회하거나, 특정 날짜가 범위 안에 들어오는지 확인하고, 두 날짜 범위의 공통 부분을 구할 수 있거든요.

iex> Enum.to_list(Date.range(~D[2024-01-01], ~D[2024-01-03]))
[~D[2024-01-01], ~D[2024-01-02], ~D[2024-01-03]]

iex> ~D[2024-01-02] in Date.range(~D[2024-01-01], ~D[2024-01-03])
true

Summary(요약)

이 모듈이 정의하는 타입은 t() 하나예요. 공개 필드(:first, :last, :step)는 struct 필드로 직접 접근하며, 날짜 범위를 순회하거나 검사하는 실제 동작은 Enum 프로토콜 구현을 통해 이뤄져요.

더 알아보기