Clamp a day into a billing term
A billing window runs from day 1 to day termDays. Clamp any given day to within that window.
- Return day clamped into the range 1..termDays.
- If termDays is zero or negative, return 0.
clampToTerm(termDays: int, day: int) → int
C++ needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.
Where you start
int clampToTerm(int termDays, int day) {
}
Worked examples
| Call | Result |
|---|---|
clampToTerm(31, 35) | 31 |
clampToTerm(31, 0) | 1 |
clampToTerm(31, 20) | 20 |
clampToTerm(0, 5) | 0 |
Hint
A pair of comparisons: too low pulls up, too high pulls down.
Reference solution in C++
int clampToTerm(int termDays, int day) {
if (termDays <= 0) return 0;
if (day < 1) return 1;
if (day > termDays) return termDays;
return day;
}