You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
794 B
25 lines
794 B
export function diffString(diff) {
|
|
return diff < 0 ? `${diff}` : `+${diff}`
|
|
}
|
|
|
|
export default function calculateDiff(program, minutes, seconds, calories) {
|
|
const {warmupMin, warmupCpm, cpm} = program;
|
|
|
|
let preWarmup = 0;
|
|
if (warmupMin > 0) {
|
|
// Pre-warmup
|
|
const warmedUpMinutes = Math.min(minutes, warmupMin);
|
|
const warmedUpSeconds = minutes >= warmupMin ? 0 : seconds;
|
|
preWarmup = Math.round((warmupCpm * (warmedUpMinutes + (warmedUpSeconds / 60))));
|
|
}
|
|
|
|
// Post-warmup
|
|
const trainedMinutes = Math.max(0, minutes - warmupMin);
|
|
const trainedSeconds = minutes >= warmupMin ? seconds : 0;
|
|
const postWarmup = Math.round((cpm * (trainedMinutes + (trainedSeconds / 60))));
|
|
|
|
// Sum
|
|
const target = Math.round(preWarmup + postWarmup);
|
|
|
|
return calories - target;
|
|
}
|