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
74 changes: 74 additions & 0 deletions src/main/java/io/zipcoder/Formatting.java
Original file line number Diff line number Diff line change
@@ -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";
}

}

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

}


84 changes: 84 additions & 0 deletions src/main/java/io/zipcoder/NumberRepresentation.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
5 changes: 5 additions & 0 deletions src/main/java/io/zipcoder/Problem6.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
package io.zipcoder;

public class Problem6 {

public String getMilitaryTime(String s){
String timeAsWords = Formatting.getNewTime(s);
return timeAsWords;
}
}
74 changes: 74 additions & 0 deletions src/test/java/io/zipcoder/FormattingTest.java
Original file line number Diff line number Diff line change
@@ -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);
}

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

}