Addition of between?/3 to Calendar module

54 views
Skip to first unread message

edward omondi

unread,
Jul 5, 2024, 4:49:37 AM7/5/24
to elixir-lang-core

I have been extensively working with dates recently and found the need to create a function between?/3. This function takes first_date, second_date, and target_date as inputs and returns a boolean indicating whether target_date is between first_date and second_date, inclusive of the boundaries if specified.

While the Timex library offers this functionality, the recently added Calendar module in Elixir already provides most of the features I need, except for this specific function. I believe it would be beneficial to include this functionality in the Calendar module.

Proposal

Function: Calendar.between?/3

Description: This function checks if target_date falls between first_date and second_date. By default, the boundaries are exclusive. An optional keyword list allows the inclusion of boundaries.

Example Usage:

```elixir

Calendar.between?(datetime_1datetime_2datetime_3)

```

Returns true if datetime_3 is between datetime_1 and datetime_2, exclusive of datetime_1 and datetime_2.

```elixir

Calendar.between?(datetime_1, datetime_2, datetime_3, inclusive: true)

```

Of course, there are other factors to consider, but setting aside the implementation details, what is the feasibility of adding this function?

Billy Lanchantin

unread,
Jul 8, 2024, 11:04:28 AM7/8/24
to elixir-lang-core
Hi,

Not to self promote, but this is the exact use case I created CompareChain for:


import CompareChain

# excluding bounds
compare?(start_date < date < end_date, Date)

# including bounds
compare?(start_date <= date <= end_date, Date)

In case your proposal is not accepted, please consider trying it out as a substitute :)
Reply all
Reply to author
Forward
0 new messages