Problems › TypeScript › billing
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
Where you start
function clampToTerm(termDays: number, day: number): number {
}
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 TypeScript
function clampToTerm(termDays: number, day: number): number {
if (termDays <= 0) return 0;
if (day < 1) return 1;
if (day > termDays) return termDays;
return day;
}