Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@
<groupId>io.zipcoder</groupId>
<artifactId>InterviewProblem5</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<!-- https://mvnrepository.com/artifact/junit/junit -->
Expand Down
227 changes: 227 additions & 0 deletions src/main/java/io/zipcoder/Problem6.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
127 changes: 127 additions & 0 deletions src/test/java/io/zipcoder/Problem6Test.java
Original file line number Diff line number Diff line change
@@ -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);
}
}