Skip to content

Instantly share code, notes, and snippets.

@anteburazer
Last active September 14, 2016 10:19
Show Gist options
  • Save anteburazer/45f4861154788588be311e314f095777 to your computer and use it in GitHub Desktop.
Save anteburazer/45f4861154788588be311e314f095777 to your computer and use it in GitHub Desktop.
function(signInDate, signOutDate, PauseOptions, PauseOptionId, isSignInTimeSelected, isSignOutTimeSelected) {
// Calculate number of hours employee has worked for
var signInDate = new Date(signInDate),
signOutDate = new Date(signOutDate),
signInOffset = isSignInTimeSelected ? 0 : signInDate.getTimezoneOffset() * 60 * 1000,
signOutOffset = isSignOutTimeSelected ? 0 : signOutDate.getTimezoneOffset() * 60 * 1000,
diff = signOutDate - signInDate + signOutOffset - signInOffset,
pause = 0,
workingMinutes,
workingHours,
workingMinutesResidue;
if (PauseOptionId) {
for (var i = 0; i < PauseOptions.length; i++) {
if (PauseOptions[i].Id === PauseOptionId) pause = PauseOptions[i].NumberOfMinutes;
}
}
workingMinutes = diff < 0 ? 0 : (diff / 60 / 1000);
workingHours = diff < 0 ? 0 : Math.floor((workingMinutes - pause) / 60);
workingMinutesResidue = Math.round((workingMinutes - pause) % 60);
// workingMinutesResidue = workingMinutesResidue < 30 ? '00' : '50';
workingMinutesResidue = workingMinutesResidue < 0 ? '00' : workingMinutesResidue;
workingMinutesResidue = workingMinutesResidue.toString().length === 1 ? ('0' + workingMinutesResidue) : workingMinutesResidue;
return {
workingMinutes: workingMinutes,
workingHours: workingHours,
workingMinutesResidue: workingMinutesResidue
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment