diff --git a/src/main/java/io/zipcoder/App.java b/src/main/java/io/zipcoder/App.java new file mode 100644 index 0000000..aa2f777 --- /dev/null +++ b/src/main/java/io/zipcoder/App.java @@ -0,0 +1,16 @@ +package io.zipcoder; + +public class App { + + public static void main(String[] args) { + String input = "9:30pm"; + String militaryTimeHour; + String militaryTimeOfMinutes; + + Problem6 p6 = new Problem6(); + militaryTimeHour = p6.getMilitaryHour(p6.parseIntoHour(input)); + militaryTimeOfMinutes = p6.getMilitaryMinutes(p6.parseMinutes(input)); + p6.getMilitaryTime(militaryTimeHour, militaryTimeOfMinutes); + System.out.println(p6.getMilitaryTime(militaryTimeHour, militaryTimeOfMinutes)); + } +} diff --git a/src/main/java/io/zipcoder/Problem6.java b/src/main/java/io/zipcoder/Problem6.java index 4ee4e64..e0bd1a5 100644 --- a/src/main/java/io/zipcoder/Problem6.java +++ b/src/main/java/io/zipcoder/Problem6.java @@ -1,4 +1,69 @@ package io.zipcoder; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; + public class Problem6 { + + private String militaryTimeHour; + private String militaryTimeOfMinutes; + + private String[] hours = {"","One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", + "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen", + "Twenty", "Twenty One", "Twenty Two", "Twenty Three", "Twenty Four"}; + private String[] bigMinutes = {"Zero", "Ten", "Twenty", "Thirty", "Forty", "Fifty"}; + + + public String[] splitString(String input) { + return input.split(":"); + } + + public Integer parseIntoHour(String input) { + String[] getHour = splitString(input); + Integer hour = Integer.parseInt(getHour[0]); + if(getHour[1].contains("p")) { + return hour += 12; + } else { + return hour; + } + } + public String getMilitaryHour(Integer input) { + if (input < 10) { + militaryTimeHour = hours[input]; + return "Zero " + militaryTimeHour; + } else + return militaryTimeHour = hours[input]; + } + + public Integer parseMinutes(String input) { + String[] getMinutes = splitString(input); + String minutes = getMinutes[1]; + StringBuilder justMinutes = new StringBuilder(); + justMinutes.append(minutes.charAt(0)); + justMinutes.append(minutes.charAt(1)); + String newMinutes = justMinutes.toString(); + return Integer.parseInt(newMinutes); + } + + public String getMilitaryMinutes(Integer input) { + if(input == 0) { + return militaryTimeOfMinutes = bigMinutes[0]; + } else if (input < 10) { + return militaryTimeOfMinutes = "Zero " + hours[input]; + } else if (input < 21) { + return militaryTimeOfMinutes = hours[input]; + } else { + String minuteString = Integer.toString(input); + String[] highMinutes = minuteString.split(""); + Integer first = Integer.parseInt(highMinutes[0]); + Integer second = Integer.parseInt(highMinutes[1]); + return militaryTimeOfMinutes = bigMinutes[first] + " " + hours[second]; + } + } + + public String getMilitaryTime(String input, String input2) { + return militaryTimeHour + " Hundred and " + militaryTimeOfMinutes + " Hours"; + } + } diff --git a/src/test/java/io/zipcoder/Problem6Test.java b/src/test/java/io/zipcoder/Problem6Test.java index d262e88..1789aac 100644 --- a/src/test/java/io/zipcoder/Problem6Test.java +++ b/src/test/java/io/zipcoder/Problem6Test.java @@ -1,4 +1,64 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + public class Problem6Test { + + @Test + public void testTime() { + Problem6 problem6 = new Problem6(); + String input = "1:30pm"; + String[] expected = {"1","30pm"}; + String[] actual = problem6.splitString(input); + Assert.assertEquals(expected, actual); + } + + @Test + public void testGetHour() { + Problem6 problem6 = new Problem6(); + String input = "1:30pm"; + Integer expected = 13; + Integer actual = problem6.parseIntoHour(input); + Assert.assertEquals(expected, actual); + + } + + @Test + public void testGetMilitaryTime1() { + Problem6 problem6 = new Problem6(); + Integer input = 5; + String expected = "Zero Five"; + String actual = problem6.getMilitaryHour(input); + Assert.assertEquals(expected, actual); + } + + @Test + public void testGetMilitaryTime() { + Problem6 problem6 = new Problem6(); + Integer input = 13; + String expected = "Thirteen"; + String actual = problem6.getMilitaryHour(input); + Assert.assertEquals(expected, actual); + } + @Test + public void testMinuteTime() { + Problem6 problem6 = new Problem6(); + String input = "1:30pm"; + Integer expected = 30; + Integer actual = problem6.parseMinutes(input); + System.out.println(actual); + Assert.assertEquals(expected, actual); + } + @Test + public void testMilitaryMinutes() { + Problem6 problem6 = new Problem6(); + Integer input = 30; + String expected = "Thirty "; + String actual = problem6.getMilitaryMinutes(input); + System.out.println(actual); + Assert.assertEquals(expected, actual); + } + + }