diff --git a/pom.xml b/pom.xml
index 5fd8efa..7b5cfe2 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.8
+ 1.8
+
+
+
+
diff --git a/src/main/java/io/zipcoder/Formatting.java b/src/main/java/io/zipcoder/Formatting.java
new file mode 100644
index 0000000..32851c1
--- /dev/null
+++ b/src/main/java/io/zipcoder/Formatting.java
@@ -0,0 +1,74 @@
+package io.zipcoder;
+
+public class Formatting {
+
+ public static String getNewTime(String s){
+ String makeMilitary = convertTime(s);
+ String hundreds = changeFormatHundred(makeMilitary);
+ String hours = changeFormatHours(makeMilitary);
+ String militaryTime = hundreds + hours;
+ System.out.println(militaryTime);
+ return militaryTime;
+ }
+
+ public static String convertTime(String s){
+ if(s.contains("AM")){
+ s = s.replace("AM", "");
+ String[] timeArray = s.split(":");
+ if(timeArray[0].equals("12")) {
+ timeArray[0] = "00";
+ }
+ if(timeArray[0].equals("12") || timeArray[0].equals("11") || timeArray[0].equals("10")){
+ s = timeArray[0] + ":" + timeArray[1];
+ }
+ else if(!timeArray[0].equals("12") || timeArray[0].equals("11") || timeArray[0].equals("10")) {
+ s = "0" + timeArray[0] + ":" + timeArray[1];
+ }
+ }
+ else if(s.contains("PM")){
+ s = s.replace("PM", "");
+ String[] timeArray = s.split(":");
+ if(!timeArray[0].equals("12")){
+ timeArray[0] = Integer.toString(Integer.parseInt(timeArray[0])+12);
+ }
+ s = timeArray[0] + ":" + timeArray[1];
+ }
+ System.out.println(s);
+ return s;
+ }
+
+ public static String changeFormatHundred(String s){
+ String[] newTime = s.split(":");
+ String hundred = NumberRepresentation.getHundred(newTime[0]);
+ System.out.println(hundred + " Hundred");
+ return hundred + " Hundred";
+ }
+
+ public static String changeFormatHours(String s){
+ String[] newTime = s.split(":");
+ int result = Integer.valueOf(newTime[1]);
+ String newNumber = "";
+ if(result < 10){
+ newNumber = " Zero" + NumberRepresentation.getHours(result);
+ } else if(result > 10 && result < 19){
+ newNumber = HigherMinuteConverter.tenToTwenty(result);
+
+ }else if(result > 20 && result < 29){
+ newNumber = " Twenty" + HigherMinuteConverter.higherMinutes(result);
+
+ }else if(result > 30 && result < 39){
+ newNumber = " Thirty" + HigherMinuteConverter.higherMinutes(result);
+
+ }else if(result > 40 && result < 49){
+ newNumber = " Forty" + HigherMinuteConverter.higherMinutes(result);
+
+ }else if(result > 50 && result < 59){
+ newNumber = " Fifty" + HigherMinuteConverter.higherMinutes(result);
+
+ }
+ System.out.println(newNumber + " Hours");
+ return newNumber + " Hours";
+ }
+
+}
+
diff --git a/src/main/java/io/zipcoder/HigherMinuteConverter.java b/src/main/java/io/zipcoder/HigherMinuteConverter.java
new file mode 100644
index 0000000..00d70ec
--- /dev/null
+++ b/src/main/java/io/zipcoder/HigherMinuteConverter.java
@@ -0,0 +1,62 @@
+package io.zipcoder;
+
+public class HigherMinuteConverter {
+
+
+ public static String tenToTwenty(int i){
+ String teens = "";
+ switch (i){
+ case 10 : teens = "Ten"; break;
+ case 11 : teens = "Eleven"; break;
+ case 12 : teens = "Twelve"; break;
+ case 13 : teens = "Thirteen"; break;
+ case 14 : teens = "Fourteen"; break;
+ case 15 : teens = "Fifteen"; break;
+ case 16 : teens = "Sixteen"; break;
+ case 17 : teens = "Seventeen"; break;
+ case 18 : teens = "Eighteen"; break;
+ case 19 : teens = "Nineteen"; break;
+ }
+ return teens;
+ }
+
+
+ public static String higherMinutes(int i){
+ String higherNumbers = "";
+
+ if(i == 20 || i == 30 || i == 40 || i == 50) {
+ higherNumbers = "";
+ }
+ else if(i == 21 || i == 31 || i == 41 || i == 51) {
+ higherNumbers = "one";
+ }
+ else if(i == 22 || i == 32 || i == 42 || i == 52) {
+ higherNumbers = "two";
+ }
+ else if(i == 23 || i == 33 || i == 43 || i == 53) {
+ higherNumbers = "three";
+ }
+ else if(i == 24 || i == 34 || i == 44 || i == 54) {
+ higherNumbers = "four";
+ }
+ else if(i == 25 || i == 35 || i == 45 || i == 55) {
+ higherNumbers = "five";
+ }
+ else if(i == 26|| i == 36 || i == 46 || i == 56) {
+ higherNumbers = "six";
+ }
+ else if(i == 27 || i == 37 || i == 47 || i == 57) {
+ higherNumbers = "seven";
+ }
+ else if(i == 28 || i == 38 || i == 48 || i == 58) {
+ higherNumbers = "eight";
+ }
+ else if(i == 29 || i == 39 || i == 49 || i == 59) {
+ higherNumbers = "nine";
+ }
+ return higherNumbers;
+ }
+
+ }
+
+
diff --git a/src/main/java/io/zipcoder/NumberRepresentation.java b/src/main/java/io/zipcoder/NumberRepresentation.java
new file mode 100644
index 0000000..4854e63
--- /dev/null
+++ b/src/main/java/io/zipcoder/NumberRepresentation.java
@@ -0,0 +1,84 @@
+package io.zipcoder;
+
+public class NumberRepresentation {
+
+ public static String numberToWord = "";
+ public static String intToWord = "";
+
+ public static String getHundred(String s) {
+ switch (s) {
+ case "00": numberToWord = "Zero"; break;
+ case "01": numberToWord = "Zero One"; break;
+ case "02": numberToWord = "Zero Two"; break;
+ case "03": numberToWord = "Zero Three"; break;
+ case "04": numberToWord = "Zero Four"; break;
+ case "05": numberToWord = "Zero Five"; break;
+ case "06": numberToWord = "Zero Six"; break;
+ case "07": numberToWord = "Zero Seven"; break;
+ case "08": numberToWord = "Zero Eight"; break;
+ case "09": numberToWord = "Zero Nine"; break;
+ case "10": numberToWord = "Ten"; break;
+ case "11": numberToWord = "Eleven"; break;
+ case "12": numberToWord = "Twelve"; break;
+ case "13": numberToWord = "Thirteen"; break;
+ case "14": numberToWord = "Fourteen"; break;
+ case "15": numberToWord = "Fifteen"; break;
+ case "16": numberToWord = "Sixteen"; break;
+ case "17": numberToWord = "Seventeen"; break;
+ case "18": numberToWord = "Eighteen"; break;
+ case "19": numberToWord = "Nineteen"; break;
+ case "20": numberToWord = "Twenty"; break;
+ case "21": numberToWord = "Twenty One"; break;
+ case "22": numberToWord = "Twenty Two"; break;
+ case "23": numberToWord = "Twenty Three";break;
+ case "24": numberToWord = "Twenty Four"; break;
+ }
+ return numberToWord;
+ }
+
+ public static String getHours(int i) {
+ switch (i) {
+ case 0: {
+ intToWord = "Zero";
+ break;
+ }
+ case 1: {
+ intToWord = " One";
+ break;
+ }
+ case 2: {
+ intToWord = " Two";
+ break;
+ }
+ case 3: {
+ intToWord = " Three";
+ break;
+ }
+ case 4: {
+ intToWord = " Four";
+ break;
+ }
+ case 5: {
+ intToWord = " Five";
+ break;
+ }
+ case 6: {
+ intToWord = " Six";
+ break;
+ }
+ case 7: {
+ intToWord = " Seven";
+ break;
+ }
+ case 8: {
+ intToWord = " Eight";
+ break;
+ }
+ case 9: {
+ intToWord = " Nine";
+ break;
+ }
+ }
+ return intToWord;
+ }
+}
diff --git a/src/main/java/io/zipcoder/Problem6.java b/src/main/java/io/zipcoder/Problem6.java
index 4ee4e64..154c549 100644
--- a/src/main/java/io/zipcoder/Problem6.java
+++ b/src/main/java/io/zipcoder/Problem6.java
@@ -1,4 +1,9 @@
package io.zipcoder;
public class Problem6 {
+
+public String getMilitaryTime(String s){
+ String timeAsWords = Formatting.getNewTime(s);
+ return timeAsWords;
+}
}
diff --git a/src/test/java/io/zipcoder/FormattingTest.java b/src/test/java/io/zipcoder/FormattingTest.java
new file mode 100644
index 0000000..91f9386
--- /dev/null
+++ b/src/test/java/io/zipcoder/FormattingTest.java
@@ -0,0 +1,74 @@
+package io.zipcoder;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class FormattingTest {
+
+ @Test
+ public void convertTimeTest(){
+ //Given
+ String input = "1:30AM";
+ String expected = "01:30";
+ //When
+ String actual = Formatting.convertTime(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void convertTimeTest2(){
+ //Given
+ String input = "1:30PM";
+ String expected = "13:30";
+ //When
+ String actual = Formatting.convertTime(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void changeFormatHundredTest(){
+ //Given
+ String input = "01:30";
+ String expected = "Zero One Hundred";
+ //When
+ String actual = Formatting.changeFormatHundred(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void changeFormatHundredTest2(){
+ //Given
+ String input = "13:30";
+ String expected = "Thirteen Hundred";
+ //When
+ String actual = Formatting.changeFormatHundred(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void changeFormatHoursTest(){
+ //Given
+ String input = "13:03";
+ String expected = " Zero Three Hours";
+ //When
+ String actual = Formatting.changeFormatHours(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void getNewTimeTest() {
+ //Given
+ String input = "11:03AM";
+ String expected = "Eleven Hundred Zero Three Hours";
+ //When
+ String actual = Formatting.getNewTime(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+
+}
diff --git a/src/test/java/io/zipcoder/HigherMinuteConverterTest.java b/src/test/java/io/zipcoder/HigherMinuteConverterTest.java
new file mode 100644
index 0000000..5d4a582
--- /dev/null
+++ b/src/test/java/io/zipcoder/HigherMinuteConverterTest.java
@@ -0,0 +1,29 @@
+package io.zipcoder;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class HigherMinuteConverterTest {
+
+ @Test
+ public void tenToTwentyTest(){
+ //Given
+ int input = 11;
+ String expected = "Eleven";
+ //When
+ String actual = HigherMinuteConverter.tenToTwenty(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void higherMinutesTest(){
+ //Given
+ int input = 31;
+ String expected = "one";
+ //When
+ String actual = HigherMinuteConverter.higherMinutes(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+}
diff --git a/src/test/java/io/zipcoder/Problem6Test.java b/src/test/java/io/zipcoder/Problem6Test.java
index d262e88..08b3912 100644
--- a/src/test/java/io/zipcoder/Problem6Test.java
+++ b/src/test/java/io/zipcoder/Problem6Test.java
@@ -1,4 +1,19 @@
package io.zipcoder;
+import org.junit.Assert;
+import org.junit.Test;
+
public class Problem6Test {
+
+ @Test
+ public void getMilitaryTimeTest() {
+ //Given
+ String input = "1:03AM";
+ String expected = "Zero One Hundred Zero Three Hours";
+ //When
+ String actual = Formatting.getNewTime(input);
+ //Then
+ Assert.assertEquals(expected, actual);
+ }
+
}