feat(pure): computeEstimate with safe division and target-reached handling
This commit is contained in:
+13
@@ -23,3 +23,16 @@ export function parseTarget(input) {
|
||||
const multiplier = suffix ? SUFFIXES[suffix] : 1;
|
||||
return Math.floor(num * multiplier);
|
||||
}
|
||||
|
||||
export function computeEstimate(current, target, perTrain, perDay) {
|
||||
const remaining = Math.max(0, target - current);
|
||||
if (remaining === 0) {
|
||||
return { remaining: 0, trainsToGo: 0, days: 0, eta: null };
|
||||
}
|
||||
|
||||
const trainsToGo = perTrain > 0 ? Math.ceil(remaining / perTrain) : 0;
|
||||
const days = perDay > 0 ? Math.ceil(remaining / perDay) : 0;
|
||||
const eta = days > 0 ? new Date(Date.now() + days * 86_400_000) : null;
|
||||
|
||||
return { remaining, trainsToGo, days, eta };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user