I have six `int`

variables: `currentMonth`

, `currentDay`

, `monthFrom`

, `dayFrom`

, `monthUntil`

and `dayUntil`

. I need to check if todays month and day falls within a range of from and until variables.

For example if `currentMonth = 1`

, `currentDay = 2`

, `monthFrom = 11`

, ```
dayFrom =
24
```

, `monthUntil = 3`

and `dayUntil = 3`

the date is in the interval and the method should return true.

I'm not sure how to do it though. Is there any other option than to check every possible outcome using ifs?

I would suggest using `java.time.MonthDay`

to represent each value involved. You then need to consider two alternative situations:

`from`

is before or equal to`until`

, in which case you need to perform a test of`from <= current && current <= until`

.`from`

is later than`until`

, in which case you need to perform a test of`current <= until || current >= from`

So:

```
public static boolean isBetween(
int currentMonth, int currentDay,
int fromMonth, int fromDay,
int untilMonth, int untilDay)
{
MonthDay current = MonthDay.of(currentMonth, currentDay);
MonthDay from = MonthDay.of(fromMonth, fromDay);
MonthDay until = MonthDay.of(untilMonth, untilDay);
if (from.compareTo(until) <= 0)
{
return from.compareTo(current) <= 0 &&
current.compareTo(until) <= 0;
}
else
{
return current.compareTo(until) <= 0 ||
current.compareTo(from) >= 0;
}
}
```

The two return statements *could* be combined, but it's probably simpler not to.

(This gives the same results as Marvin's code for his test cases.)

See more on this question at Stackoverflow