-
Notifications
You must be signed in to change notification settings - Fork 0
/
offctimer.js
99 lines (74 loc) · 2.83 KB
/
offctimer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/**
*
* test1.js
*
* sidmishraw Modified: May 31, 2017 : 11:57:52 PM
*/
"use strict";
((function main() {
$.noConflict();
const TOTAL_WORK_HRS = 8;
const BREAK_TIME_MINS = 30;
const BREAK_TIME_AFTER_HRS = 4;
jQuery("document")
.ready(
function() {
jQuery("#logintime")
.unbind("change")
.bind(
"change",
function(event) {
let timeString =
jQuery(event.target).val();
let parsedTime =
timeString
.match(/([0-9]+)\:([0-9]+)/i);
let hrs = parsedTime[1];
let mins = parsedTime[2];
let scheduledtimes =
scheduleTimer(hrs, mins);
// set the computed times
jQuery("#lunchStart").html(
scheduledtimes[0]);
jQuery("#lunchEnd").html(
scheduledtimes[1]);
jQuery("#logout").html(
scheduledtimes[2]);
});
});
/**
* Schedules the lunch time and log out time for your input time. Computes a
* work hr of 8-hrs, including lunch clock off.
*
* @param hrs
* @param mins
* @param amPm
* @returns the scheduled lunch times and end time
*/
function scheduleTimer(hrs, mins, amPm = "AM") {
let scheduledTimes = [];
hrs = parseInt(hrs);
mins = parseInt(mins);
if (amPm.toLowerCase() == "am") {
let lunchStartHR = parseInt((hrs + BREAK_TIME_AFTER_HRS) % 12);
lunchStartHR = (lunchStartHR == 0) ? 12 : lunchStartHR;
// push lunch start time
scheduledTimes
.push(`${("0" + lunchStartHR).slice(-2)}:${("0" + mins).slice(-2)}PM`);
let lunchEndMINS = parseInt((mins + BREAK_TIME_MINS) % 60);
let lunchEndHR =
parseInt((lunchStartHR + parseInt(mins + BREAK_TIME_MINS) / 60) % 12);
lunchEndHR = (lunchEndHR == 0) ? 12 : lunchEndHR;
scheduledTimes
.push(`${("0" + lunchEndHR).slice(-2)}:${("0" + lunchEndMINS).slice(-2)}PM`);
let logoutHR =
parseInt((lunchEndHR + (TOTAL_WORK_HRS - BREAK_TIME_AFTER_HRS)) % 12);
logoutHR = (logoutHR == 0) ? 12 : logoutHR;
scheduledTimes
.push(`${("0" + logoutHR).slice(-2)}:${("0" + lunchEndMINS).slice(-2)}PM`);
} else {
alert("Ask manager for saving your arse!")
}
return scheduledTimes;
}
})());