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.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<!-- https://mvnrepository.com/artifact/junit/junit -->
Expand Down
37 changes: 37 additions & 0 deletions src/main/java/io/zipcoder/MilitaryTimeConverter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package io.zipcoder;

import java.util.*;

public class MilitaryTimeConverter {

private List<String> 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));
}
}
4 changes: 0 additions & 4 deletions src/main/java/io/zipcoder/Problem6.java

This file was deleted.

137 changes: 137 additions & 0 deletions src/test/java/io/zipcoder/Problem6Test.java
Original file line number Diff line number Diff line change
@@ -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);
}

}