Problems › TypeScript › machines
Machine uptime per thousand
Maintenance reports uptime as parts per thousand so a single line reads as 993 instead of a harder-to-compare 99.3%.
- Uptime is the running hours out of every thousand, truncated down.
- A plant that neither ran nor stopped for the whole window reads as full uptime: 1000.
uptimePermille(upHours: int, downHours: int) → int
Where you start
function uptimePermille(upHours: number, downHours: number): number {
}
Worked examples
| Call | Result |
|---|---|
uptimePermille(1000, 0) | 1000 |
uptimePermille(993, 7) | 993 |
uptimePermille(750, 250) | 750 |
uptimePermille(3, 1) | 750 |
Hint
upHours * 1000 / total — but a total of zero is a special case that must come first.
Reference solution in TypeScript
function uptimePermille(upHours: number, downHours: number): number {
if (upHours + downHours === 0) return 1000;
return Math.floor((upHours * 1000) / (upHours + downHours));
}