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/MilitaryTimeConverter.java b/src/main/java/io/zipcoder/MilitaryTimeConverter.java new file mode 100644 index 0000000..53704bc --- /dev/null +++ b/src/main/java/io/zipcoder/MilitaryTimeConverter.java @@ -0,0 +1,37 @@ +package io.zipcoder; + +import java.util.*; + +public class MilitaryTimeConverter { + + private List time = Arrays.asList("Zero", "Zero One", "Zero Two", "Zero Three", "Zero Four", "Zero Five", "Zero Six", "Zero Seven", "Zero Eight", "Zero Nine", + "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen", + "Twenty", "Twenty One", "Twenty Two", "Twenty Three", "Twenty Four", "Twenty Five", "Twenty Six", "Twenty Seven", "Twenty Eight", "Twenty Nine", + "Thirty", "Thirty One", "Thirty Two", "Thirty Three", "Thirty Four", "Thirty Five", "Thirty Six", "Thirty Seven", "Thirty Eight", "Thirty Nine", + "Forty", "Forty One", "Forty Two", "Forty Three", "Forty Four", "Forty Five", "Forty Six", "Forty Seven", "Forty Eight", "Forty Nine", + "Fifty", "Fifty One", "Fifty Two", "Fifty Three", "Fifty Four", "Fifty Five", "Fifty Six", "Fifty Seven", "Fifty Eight", "Fifty Nine"); + + + public String convertTime(String input) { + StringBuilder builder = new StringBuilder(); + int hours = getHours(input); + int minutes = getMinutes(input); + return builder.append(time.get(hours)).append(" Hundred and ").append(time.get(minutes)).append(" Hours").toString(); + } + + public int getHours(String input) { + int hours = Integer.parseInt(input.substring(0, input.indexOf(":"))); + if (isPm(input) && hours != 12) { + return hours + 12; + } + return hours; + } + + public boolean isPm(String input) { + return input.toLowerCase().contains("pm"); + } + + public int getMinutes(String input) { + return Integer.parseInt(input.substring(input.indexOf(":") + 1, input.indexOf(":") + 3)); + } +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/Problem6.java b/src/main/java/io/zipcoder/Problem6.java deleted file mode 100644 index 4ee4e64..0000000 --- a/src/main/java/io/zipcoder/Problem6.java +++ /dev/null @@ -1,4 +0,0 @@ -package io.zipcoder; - -public class Problem6 { -} diff --git a/src/test/java/io/zipcoder/Problem6Test.java b/src/test/java/io/zipcoder/Problem6Test.java index d262e88..4b35e08 100644 --- a/src/test/java/io/zipcoder/Problem6Test.java +++ b/src/test/java/io/zipcoder/Problem6Test.java @@ -1,4 +1,141 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + + public class Problem6Test { + + @Test + public void getMilitaryTimeTest1() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + + String input = "1:30pm"; + String expected = "Thirteen Hundred and Thirty Hours"; + String actual = militaryTimeConverter.convertTime(input); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getMilitaryTimeTest3() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + + String input = "2:22pm"; + String expected = "Fourteen Hundred and Twenty Two Hours"; + String actual = militaryTimeConverter.convertTime(input); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getMilitaryTimeTest4() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + + String input = "2:11am"; + String expected = "Zero Two Hundred and Eleven Hours"; + String actual = militaryTimeConverter.convertTime(input); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getMilitaryTimeTest5() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + + String input = "10:02am"; + String expected = "Ten Hundred and Zero Two Hours"; + String actual = militaryTimeConverter.convertTime(input); + + Assert.assertEquals(expected, actual); + } + + + @Test + public void isPmTest() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + + String input = "10:02am"; + boolean actual = militaryTimeConverter.isPm(input); + + Assert.assertFalse(actual); + } + + @Test + public void isPmTest2() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + + String input = "10:02pm"; + boolean actual = militaryTimeConverter.isPm(input); + + Assert.assertTrue(actual); + } + + @Test + public void getHoursTest() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + String input = "11:12pm"; + + int expected = 23; + int actual = militaryTimeConverter.getHours(input); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getHoursTest2() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + String input = "9:12pm"; + + int expected = 21; + int actual = militaryTimeConverter.getHours(input); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getMinutesTest() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + String input = "9:12pm"; + + int expected = 12; + int actual = militaryTimeConverter.getMinutes(input); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getMinutesTest2() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + String input = "9:03pm"; + + int expected = 3; + int actual = militaryTimeConverter.getMinutes(input); + + Assert.assertEquals(expected, actual); + } + + + @Test + public void convertToMilitaryTimeTest() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + String input = "12:36pm"; + + int expected = 12; + int actual = militaryTimeConverter.getHours(input); + + Assert.assertEquals(expected, actual); + } + + @Test + public void convertToMilitaryTimeTest2() { + MilitaryTimeConverter militaryTimeConverter = new MilitaryTimeConverter(); + String input = "2:17pm"; + + int expected = 14; + int actual = militaryTimeConverter.getHours(input); + + Assert.assertEquals(expected, actual); + } + }