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

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;
}