Problem Statement
hh:mm,xxwhere hh is the 2 digit representation of the hour, mm is the 2 digit representation of the minute, and xx is either am or pm. The ':' and ',' are literal. "12:00,am" denotes midnight, while "12:00,pm" denotes noon.
The difference between that time I punch in and the time I punch out is the amount of time I have worked so, for example, if I punch in at 03:33pm and punch out at 03:34pm I have worked 1 minute.
No shift is allowed to be more than 20 hours long. This is my last shift of the
week and I am supposed to work 40 hours during the week.
Create a class TimeCard that contains a method leave that is given a
The elements of time alternate: punch in time, punch out time, punch in time, ... with the final element being the time I just punched in on my final shift.
Definition
- Class:
- TimeCard
- Method:
- leave
- Parameters:
- String[]
- Returns:
- String
- Method signature:
- String leave(String[] time)
- (be sure your method is public)
Constraints
- time will contain an odd number of elements between 1 and 49 inclusive.
- Each element of time will be formatted as above.
- In each element of time hh will be between 01 and 12 inclusive.
- In each element of time mm will be between 00 and 59 inclusive.
- time will contain no shift that exceeds 20 hours in duration.
Examples
{"03:00,pm"}
Returns: "BELOW 40"
This is my one and only shift, and I am only allowed to work 20 hours on a shift.
{"09:00,am","05:00,pm","09:00,am","05:00,pm", "09:00,am","05:00,pm","09:00,am","05:00,pm","09:00,am"}
Returns: "05:00,pm"
I have worked 4 previous shifts of 8 hours, so I need 8 hours on this shift to make 40.
{"12:00,am","08:00,pm","12:00,am","08:00,pm","12:00,am"}
Returns: "12:00,am"
I have already worked 2 shifts of 20 hours so I already have exactly 40 hours. I should go home immediately.
{"12:00,pm","08:00,pm","12:00,am","08:00,pm","12:00,am"}
Returns: "12:00,pm"
{"09:00,am","04:31,pm","09:00,am","04:31,pm", "09:00,am","05:00,pm","09:00,am","05:00,pm","03:53,am"}
Returns: "12:51,pm"
{"12:09,am","12:11,am","01:03,pm","11:02,pm","01:03,pm","11:02,pm","11:59,pm"}
Returns: "07:59,pm"
{"12:09,am","12:07,pm","01:03,pm","11:02,pm","01:03,pm","11:02,pm","11:59,pm"}
Returns: "08:03,am"
{"12:09,am","12:11,pm","01:03,pm","11:02,pm","01:03,pm","11:02,pm","11:59,pm"}
Returns: "07:59,am"
{"12:09,pm","12:11,am","01:03,pm","11:02,pm","01:03,pm","11:02,pm","11:59,pm"}
Returns: "07:59,am"
{"12:09,pm","12:07,am","01:03,pm","11:02,pm","01:03,pm","11:02,pm","11:59,pm"}
Returns: "08:03,am"
{"01:11,pm"}
Returns: "BELOW 40"
{"01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","01:01,pm","02:00,pm","10:00,am","12:00,pm"}
Returns: "08:00,am"
{"12:23,am","12:23,pm","12:23,am","12:23,pm","12:23,am","12:23,pm","12:23,am","12:23,pm","03:03,am"}
Returns: "ABOVE 40"
{"12:00,am","08:00,pm","12:00,am"}
Returns: "08:00,pm"
{"11:11,am","06:18,am","06:30,pm","01:01,am","02:50,pm","07:07,pm","02:14,am","02:26,am","05:53,pm","01:13,am","03:39,am"}
Returns: "06:12,am"
{"08:33,pm","09:16,am","05:53,am","08:39,pm","01:25,am"}
Returns: "01:56,pm"
{"07:31,pm"}
Returns: "BELOW 40"
{"05:31,pm","08:42,pm","02:37,am","11:11,am","01:37,am","11:11,am","03:39,am"}
Returns: "10:20,pm"
{"08:08,pm","12:24,pm","01:49,am","09:09,am","12:24,am","07:07,am","10:10,pm"}
Returns: "07:51,am"
{"09:33,pm","10:58,am","09:33,am"}
Returns: "BELOW 40"
{"12:48,am","12:34,pm","11:55,am","10:50,pm","01:14,pm","12:52,am","01:13,pm"}
Returns: "06:54,pm"
{"03:27,pm","10:34,pm","07:19,am","12:00,pm","07:07,am","03:39,pm","03:39,pm","06:18,am","04:04,am"}
Returns: "09:05,am"
{"02:20,pm","05:19,am","10:34,am","06:30,am","10:22,pm"}
Returns: "03:27,am"
{"08:47,pm","03:50,pm","12:24,am"}
Returns: "BELOW 40"
{"09:51,pm","04:48,am","04:07,pm","08:49,pm","08:12,am","10:31,pm","11:51,am","06:10,pm","12:00,pm","09:10,pm","11:54,am","05:58,am","04:52,am"} {"05:47,pm","09:48,pm","07:37,am","04:48,pm","07:12,am","05:44,pm","09:09,pm","12:15,am","08:16,am","02:19,pm","10:16,am","11:49,am","12:12,pm"} {"06:58,pm","05:27,am","07:07,pm"} {"10:39,am","07:35,pm","07:20,am","04:43,pm","04:02,am","05:04,pm","01:42,pm","09:59,pm","04:16,am"} {"04:40,am"} {"02:17,pm","12:53,am","05:48,pm","11:09,pm","02:09,pm","03:07,pm","05:09,pm","06:22,pm","02:36,am","07:47,pm","12:00,am"} {"09:45,am"} {"03:23,pm","08:49,am","05:17,pm","07:07,pm","06:25,pm","03:34,am","12:34,pm","04:41,pm","04:09,am","06:18,am","08:16,pm","05:11,am","08:44,am"} {"03:08,pm","04:47,pm","01:50,pm","04:10,pm","04:40,pm"}
{"08:09,am","10:36,am","08:37,pm","08:01,am","12:01,pm","11:07,pm","09:21,pm","10:52,pm","03:38,am","01:10,pm","04:52,am"}
Returns: "08:52,am"
{"12:11,pm","07:36,pm","05:56,am","12:41,am","11:31,pm","06:57,am","03:39,pm"}
Returns: "10:03,pm"
{"10:58,am","03:30,am","06:59,pm","07:55,am","11:59,pm"}
Returns: "10:31,am"
{"09:51,pm","04:48,am","04:07,pm","08:49,pm","08:12,am","10:31,pm","11:51,am","06:10,pm","04:52,am"}
Returns: "12:35,pm"
{"06:15,am","09:54,pm","01:09,am","07:40,am","11:05,am","12:20,pm","04:52,am"}
Returns: "09:27,pm"
{"03:23,pm","08:49,am","05:17,pm","07:07,pm","06:25,pm","03:34,am","12:34,pm","04:41,pm","08:44,am"}
Returns: "04:12,pm"
{"11:00,am", "12:00,am", "11:00,pm", "12:00,pm", "11:59,am", "12:01,pm", "11:59,pm", "12:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am", "09:01,am", "09:00,am" }
Returns: "10:36,pm"
{"12:00,am", "08:00,pm", "12:00,am", "08:00,pm", "12:00,am" }
Returns: "12:00,am"
{"12:00,am", "12:00,am", "12:00,am" }
Returns: "BELOW 40"
{"12:00,pm", "08:00,pm", "12:00,am", "08:00,pm", "12:00,am" }
Returns: "12:00,pm"
{"09:00,am", "04:31,pm", "09:00,am", "04:31,pm", "09:00,am", "05:00,pm", "09:00,am", "05:00,pm", "03:53,am" }
Returns: "12:51,pm"
{"02:00,pm", "01:00,am", "02:00,pm", "01:00,am", "02:00,pm", "01:00,am", "02:00,pm" }
Returns: "09:00,pm"
{"12:00,am", "07:59,pm", "12:00,am" }
Returns: "BELOW 40"
{"04:00,am", "12:00,am", "04:00,am" }
Returns: "12:00,am"
{"08:00,am", "08:00,pm", "08:00,am", "08:00,pm", "08:00,am", "08:00,pm", "08:00,pm" }
Returns: "12:00,am"
{"11:59,pm", "12:01,am", "11:59,pm", "05:00,pm", "11:59,pm", "05:00,pm", "11:59,pm" }
Returns: "05:55,am"
{"12:00,am", "08:00,pm", "07:15,am", "03:14,am", "11:59,pm" }
Returns: "12:00,am"
{"09:00,am", "05:00,pm", "09:00,am", "05:00,pm", "09:00,am", "05:00,pm", "12:50,am", "05:00,pm", "09:00,am" }
Returns: "ABOVE 40"
{"09:00,pm", "05:00,pm", "09:00,pm", "04:59,pm", "11:59,pm" }
Returns: "12:00,am"
{"09:00,am", "05:00,am", "09:00,am", "05:00,pm", "09:00,am" }
Returns: "09:00,pm"
{"12:00,pm", "08:00,am", "12:00,pm", "08:00,am", "12:00,pm" }
Returns: "12:00,pm"
{"09:00,am", "05:00,pm", "09:00,am", "05:00,pm", "09:00,am", "05:00,pm", "09:00,am", "05:00,pm", "09:00,am", "11:00,pm", "05:11,am" }
Returns: "ABOVE 40"
{"09:14,pm", "05:14,pm", "09:00,am" }
Returns: "05:00,am"
{"01:00,am", "01:00,pm", "01:00,am", "01:00,pm", "01:00,am", "01:00,pm", "01:00,am", "01:00,pm", "01:00,am" }
Returns: "ABOVE 40"
{"11:00,pm", "07:00,am", "11:00,pm", "07:00,am", "11:00,pm", "07:00,am", "11:00,pm", "07:00,am", "11:00,pm" }
Returns: "07:00,am"
{"03:00,pm", "03:01,pm", "12:00,am" }
Returns: "BELOW 40"
{"08:00,am", "08:00,pm", "08:00,am", "08:00,pm", "08:00,am", "08:00,pm", "08:00,am", "08:00,pm", "08:00,am" }
Returns: "ABOVE 40"
{"09:00,am", "04:31,pm", "09:00,am", "04:31,pm", "09:00,am", "05:00,pm", "09:00,am", "05:00,pm", "04:53,pm" }
Returns: "01:51,am"
{"12:00,pm", "08:00,pm", "12:00,am", "08:00,pm", "10:00,pm" }
Returns: "10:00,am"
{"12:00,am", "08:00,pm", "04:01,am" }
Returns: "12:01,am"
{"12:00,am", "07:01,pm", "12:00,am", "08:00,pm", "12:00,am", "01:00,am", "12:00,am" }
Returns: "ABOVE 40"
{"08:00,pm", "08:00,am", "08:00,pm", "09:00,am", "01:00,am" }
Returns: "04:00,pm"
{"12:00,am", "08:00,pm", "11:00,pm" }
Returns: "07:00,pm"
{"11:59,am", "11:59,pm", "11:59,am", "11:59,pm", "11:59,am", "11:59,pm", "11:59,am" }
Returns: "03:59,pm"
{"10:00,am", "02:00,am", "10:00,am", "02:00,am", "10:00,am" }
Returns: "06:00,pm"
{"11:00,pm", "09:00,am", "11:00,pm", "09:00,am", "11:00,pm", "09:00,am", "11:00,pm", "09:00,am", "11:00,pm", "09:00,am", "09:00,am" }
Returns: "ABOVE 40"
{"12:00,am", "08:00,pm", "12:00,am", "08:00,am", "12:00,pm" }
Returns: "12:00,am"
{"09:00,am", "05:00,pm", "01:00,pm", "01:00,am", "09:00,am", "05:00,pm", "09:00,am", "05:00,pm", "09:00,am" }
Returns: "01:00,pm"
{"12:00,am", "12:00,pm", "12:00,am", "08:01,am", "12:00,pm" }
Returns: "07:59,am"
{"02:00,am", "08:00,pm", "02:00,am", "08:00,pm", "12:20,am" }
Returns: "04:20,am"
{"12:00,am", "08:00,pm", "12:00,am" }
Returns: "08:00,pm"