Skip to content

Instantly share code, notes, and snippets.

@schadokar
Last active August 5, 2019 11:21
Show Gist options
  • Select an option

  • Save schadokar/7bf2614696c9411aac72cdfe0aad0414 to your computer and use it in GitHub Desktop.

Select an option

Save schadokar/7bf2614696c9411aac72cdfe0aad0414 to your computer and use it in GitHub Desktop.
time-in
const peeTimeCalculator = (
currentEffHr,
currentEffMins,
lastInHr,
lastInMins,
avgHrs = 7,
avgMins = 0
) => {
let totalMins = currentEffHr * 60 + currentEffMins;
let lastLogin = lastInHr * 60 + lastInMins;
let totalAvgMins = avgHrs * 60 + avgMins;
const currentTime = new Date().toLocaleTimeString("en-GB", {
timeZone: "Asia/Kolkata"
});
const currentMins =
parseInt(currentTime.split(":")[0]) * 60 +
parseInt(currentTime.split(":")[1]);
let minsSinceLogin = currentMins - lastLogin;
totalMins += minsSinceLogin;
let result = {};
if (totalMins > totalAvgMins) {
result["message"] = `${avgHrs} hrs completed`;
result["effhrs"] = `${Math.floor(totalMins / 60)} : ${totalMins % 60}`;
result["leave"] = "You can leave now!";
} else {
let hrsLeft = Math.floor((totalAvgMins - totalMins) / 60);
let minsLeft = (totalAvgMins - totalMins) % 60;
let leaveHrs = parseInt(currentTime.split(":")[0]) + hrsLeft;
let leaveMins = parseInt(currentTime.split(":")[1]) + minsLeft;
if (leaveMins >= 60) {
leaveHrs++;
leaveMins -= 60;
if (leaveHrs > 12) {
leaveHrs = 1;
}
}
result[
"message"
] = `${avgHrs} hrs is not completed, ${hrsLeft} hrs : ${minsLeft} mins left`;
result["effhrs"] = `${Math.floor(totalMins / 60)} : ${totalMins % 60}`;
result["leave"] = `You can safely pee at ${leaveHrs} : ${leaveMins + 2}`;
}
return result;
};
// console.log(typeof date);
let myargs = process.argv;
if (myargs.length > 2) {
let inputArgs = myargs.slice(2);
let [effH, effM] = inputArgs[0].split(":");
let [lastInH, lastInM] = inputArgs[1].split(":");
console.log(
peeTimeCalculator(
parseInt(effH),
parseInt(effM),
parseInt(lastInH),
parseInt(lastInM)
)
);
if (myargs.length > 4) {
let [avgH, avgM] = inputArgs[2].split(":");
console.log(
peeTimeCalculator(
parseInt(effH),
parseInt(effM),
parseInt(lastInH),
parseInt(lastInM),
parseInt(avgH),
parseInt(avgM)
)
);
}
} else {
console.log(`
Please input the followings: \n
- Effective Hours: effh=2:57 \n
- Last In time: lastin=2:52 \n
- Average Hours: avgh=7.5 \n
`);
// console.log(calculate(7, 0, 2, 57, 2, 52));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment