diff --git a/pom.xml b/pom.xml
index 5fd8efa..7584aab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,6 +7,18 @@
io.zipcoder
InterviewProblem5
1.0-SNAPSHOT
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.7
+ 1.7
+
+
+
+
diff --git a/src/main/java/io/zipcoder/Problem6.java b/src/main/java/io/zipcoder/Problem6.java
index 4ee4e64..7fa02dd 100644
--- a/src/main/java/io/zipcoder/Problem6.java
+++ b/src/main/java/io/zipcoder/Problem6.java
@@ -1,4 +1,231 @@
package io.zipcoder;
public class Problem6 {
+
+ public String timeConverter(String timeToConvert){
+ boolean isAm = amChecker(timeToConvert);
+ String[] timeArray = timeSplitter(timeToConvert);
+ int[] timeAsIntArray = intParser(timeArray);
+ timeAsIntArray = add12IfPM(timeAsIntArray,isAm);
+ StringBuilder returnString = new StringBuilder();
+ returnString.append(hourChecker(timeAsIntArray));
+ returnString.append(minuteChecker(timeArray));
+ return returnString.toString();
+ }
+
+ public boolean amChecker(String timeToCheck){
+ if (timeToCheck.contains("am") && !(timeToCheck.substring(0,2).equals("12"))){
+ return true;
+ } else if (timeToCheck.contains("pm") && timeToCheck.substring(0,2).equals("12")) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public String[] timeSplitter(String timeToSplit){
+ String removeEnding = timeToSplit.substring(0, timeToSplit.length()-2);
+ return removeEnding.split(":");
+ }
+
+ public int[] intParser(String[] arrayToParse){
+ int[] intArray = new int[2];
+ intArray[0] = Integer.parseInt(arrayToParse[0]);
+ intArray[1] = Integer.parseInt(arrayToParse[1]);
+ return intArray;
+ }
+
+ public int[] add12IfPM(int[] timeArray, boolean isAm){
+ if (!isAm){
+ timeArray[0] += 12;
+ return timeArray;
+ } else {
+ return timeArray;
+ }
+ }
+
+ public String hourChecker(int[] timeArray){
+ String stringToReturn = "";
+ switch (timeArray[0]){
+ case 1:
+ stringToReturn = "Zero One Hundred";
+ break;
+ case 2:
+ stringToReturn = "Zero Two Hundred";
+ break;
+ case 3:
+ stringToReturn = "Zero Three Hundred";
+ break;
+ case 4:
+ stringToReturn = "Zero Four Hundred";
+ break;
+ case 5:
+ stringToReturn = "Zero Five Hundred";
+ break;
+ case 6:
+ stringToReturn = "Zero Six Hundred";
+ break;
+ case 7:
+ stringToReturn = "Zero Seven Hundred";
+ break;
+ case 8:
+ stringToReturn = "Zero Eight Hundred";
+ break;
+ case 9:
+ stringToReturn = "Zero Nine Hundred";
+ break;
+ case 10:
+ stringToReturn = "Ten Hundred";
+ break;
+ case 11:
+ stringToReturn = "Eleven Hundred";
+ break;
+ case 12:
+ stringToReturn = "Twelve Hundred";
+ break;
+ case 13:
+ stringToReturn = "Thirteen Hundred";
+ break;
+ case 14:
+ stringToReturn = "Fourteen Hundred";
+ break;
+ case 15:
+ stringToReturn = "Fifteen Hundred";
+ break;
+ case 16:
+ stringToReturn = "Sixteen Hundred";
+ break;
+ case 17:
+ stringToReturn = "Seventeen Hundred";
+ break;
+ case 18:
+ stringToReturn = "Eighteen Hundred";
+ break;
+ case 19:
+ stringToReturn = "Nineteen Hundred";
+ break;
+ case 20:
+ stringToReturn = "Twenty Hundred";
+ break;
+ case 21:
+ stringToReturn = "Twenty-One Hundred";
+ break;
+ case 22:
+ stringToReturn = "Twenty-Two Hundred";
+ break;
+ case 23:
+ stringToReturn = "Twenty-Three Hundred";
+ break;
+ case 24:
+ stringToReturn = "Zero Hundred";
+ break;
+ }
+ return stringToReturn;
+ }
+
+ public String minuteChecker(String[] timeArray){
+ String tens = timeArray[1].substring(0,1);
+ String ones = timeArray[1].substring(1);
+ String stringToReturn = "";
+ if (timeArray[1].equals("00")){
+ return stringToReturn + " Hours";
+ } else if (tens.equals("0")){
+ stringToReturn = " And " + onesChecker(ones) + " Hours";
+ } else if (tens.equals("1")){
+ stringToReturn = " And " + teensChecker(timeArray[1]) + " Hours";
+ } else {
+ stringToReturn = " And " + tensChecker(tens) + " " + onesChecker(ones) + " Hours";
+ }
+ return stringToReturn;
+ }
+
+ public String onesChecker(String ones){
+ String stringToReturn = "";
+ switch (ones){
+ case "1":
+ stringToReturn = "One";
+ break;
+ case "2":
+ stringToReturn = "Two";
+ break;
+ case "3":
+ stringToReturn = "Three";
+ break;
+ case "4":
+ stringToReturn = "Four";
+ break;
+ case "5":
+ stringToReturn = "Five";
+ break;
+ case "6":
+ stringToReturn = "Six";
+ break;
+ case "7":
+ stringToReturn = "Seven";
+ break;
+ case"8":
+ stringToReturn = "Eight";
+ break;
+ case "9":
+ stringToReturn = "Nine";
+ break;
+ }
+ return stringToReturn;
+ }
+
+ public String tensChecker(String tens){
+ String stringToReturn = "";
+ switch (tens){
+ case "2":
+ stringToReturn = "Twenty";
+ break;
+ case "3":
+ stringToReturn = "Thirty";
+ break;
+ case "4":
+ stringToReturn = "Forty";
+ break;
+ case "5":
+ stringToReturn = "Fifty";
+ break;
+ }
+ return stringToReturn;
+ }
+
+ public String teensChecker(String teen){
+ String stringToReturn = "";
+ switch (teen){
+ case "10":
+ stringToReturn = "Ten";
+ break;
+ case "11":
+ stringToReturn = "Eleven";
+ break;
+ case "12":
+ stringToReturn = "Twelve";
+ break;
+ case "13":
+ stringToReturn = "Thirteen";
+ break;
+ case "14":
+ stringToReturn = "Fourteen";
+ break;
+ case "15":
+ stringToReturn = "Fifteen";
+ break;
+ case "16":
+ stringToReturn = "Sixteen";
+ break;
+ case "17":
+ stringToReturn = "Seventeen";
+ break;
+ case "18":
+ stringToReturn = "Eighteen";
+ break;
+ case "19":
+ stringToReturn = "Nineteen";
+ break;
+ }
+ return stringToReturn;
+ }
}
diff --git a/src/test/java/io/zipcoder/Problem6Test.java b/src/test/java/io/zipcoder/Problem6Test.java
index d262e88..59fd364 100644
--- a/src/test/java/io/zipcoder/Problem6Test.java
+++ b/src/test/java/io/zipcoder/Problem6Test.java
@@ -1,4 +1,131 @@
package io.zipcoder;
+import org.junit.Assert;
+import org.junit.Test;
+
public class Problem6Test {
+
+ Problem6 timeConerter = new Problem6();
+
+ @Test
+ public void amCheckerTest1(){
+ boolean actual = timeConerter.amChecker("11:00am");
+ Assert.assertTrue(actual);
+ }
+
+ @Test
+ public void amCheckerTest2(){
+ boolean actual = timeConerter.amChecker("11:00pm");
+ Assert.assertFalse(actual);
+ }
+
+ @Test
+ public void timeSplitterTest(){
+ String[] expected = new String[2];
+ expected[0] = "11";
+ expected[1] = "30";
+ String[] actual = timeConerter.timeSplitter("11:30pm");
+ Assert.assertEquals(expected,actual);
+ }
+
+ @Test
+ public void intParserTest(){
+ int[] expected = new int[2];
+ expected[0] = 11;
+ expected[1] = 30;
+ String[] testArray = new String[2];
+ testArray[0] = "11";
+ testArray[1] = "30";
+ int[] actual = timeConerter.intParser(testArray);
+ Assert.assertEquals(actual[0],expected[0]);
+ Assert.assertEquals(actual[1], expected[1]);
+ }
+
+ @Test
+ public void add12IfPMTest(){
+ int[] testArray = new int[2];
+ testArray[0] = 11;
+ testArray[1] = 30;
+ int[] actual = timeConerter.add12IfPM(testArray, false);
+ Assert.assertEquals(actual[0], 23);
+ }
+
+ @Test
+ public void hourCheckerTest(){
+ int[] testArray = new int[2];
+ testArray[0] = 23;
+ testArray[1] = 30;
+ String actual = timeConerter.hourChecker(testArray);
+ String expected = "Twenty-Three Hundred";
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void onesCheckerTest(){
+ String actual = timeConerter.onesChecker("1");
+ Assert.assertEquals(actual, "One");
+ }
+
+ @Test
+ public void tensCheckerTest(){
+ String actual = timeConerter.tensChecker("3");
+ Assert.assertEquals(actual, "Thirty");
+ }
+
+ @Test
+ public void minuteCheckerTest1(){
+ String[] testArray = new String[2];
+ testArray[0] = "11";
+ testArray[1] = "02";
+ String actual = timeConerter.minuteChecker(testArray);
+ Assert.assertEquals(actual, " And Two Hours");
+ }
+
+ @Test
+ public void minuteCheckerTest2(){
+ String[] testArray = new String[2];
+ testArray[0] = "11";
+ testArray[1] = "00";
+ String actual = timeConerter.minuteChecker(testArray);
+ Assert.assertEquals(actual, " Hours");
+ }
+
+ @Test
+ public void minuteCheckerTest3(){
+ String[] testArray = new String[2];
+ testArray[0] = "11";
+ testArray[1] = "13";
+ String actual = timeConerter.minuteChecker(testArray);
+ Assert.assertEquals(actual, " And Thirteen Hours");
+ }
+
+ @Test
+ public void minuteCheckerTest5(){
+ String[] testArray = new String[2];
+ testArray[0] = "11";
+ testArray[1] = "26";
+ String actual = timeConerter.minuteChecker(testArray);
+ Assert.assertEquals(actual, " And Twenty Six Hours");
+ }
+
+ @Test
+ public void timeConverterTest1(){
+ String actual = timeConerter.timeConverter("11:59am");
+ String expected = "Eleven Hundred And Fifty Nine Hours";
+ Assert.assertEquals(expected,actual);
+ }
+
+ @Test
+ public void timeConverterTest2(){
+ String actual = timeConerter.timeConverter("12:00pm");
+ String expected = "Twelve Hundred Hours";
+ Assert.assertEquals(expected,actual);
+ }
+
+ @Test
+ public void timeConverterTest3(){
+ String actual = timeConerter.timeConverter("12:19am");
+ String expected = "Zero Hundred And Nineteen Hours";
+ Assert.assertEquals(expected,actual);
+ }
}