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

import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringJoiner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Problem6 {

private StringJoiner militaryString = new StringJoiner(" ", "", "");
private ArrayList<String> valuesAsStrings = new ArrayList<>();

public String convertToMilitaryString(String timeInput){
Integer[] timeValues = stringSplit(timeInput);

if(timeValues[0] < 10){
militaryString.add(valuesAsStrings.get(0));

}else if(timeValues[0] > 10 && timeValues[0] < 13){
militaryString.add(valuesAsStrings.get(timeValues[0]));

}else if(timeValues[0] > 10 && timeValues[0] <= 20) {
militaryString.add(valuesAsStrings.get(timeValues[0]));

}else if(timeValues[0] > 20){
militaryString.add(valuesAsStrings.get(20));
}

System.out.println(militaryString);
return militaryString.toString();
}

// public String convertAMorPM(String timeInput){
// Pattern amPattern = Pattern.compile("(am)\\w", Pattern.CASE_INSENSITIVE);
// Matcher amMatcher = amPattern.matcher(timeInput);
// return null;
// }
//
// public String convertMinutes(String timeInput){
// Pattern singleDigitMinutePattern = Pattern.compile("[:][0][\\d]");
// Pattern twoDigitMinutePattern = Pattern.compile("[:][\\d][\\d]");
// Matcher singleDigitMinuteMatcher = singleDigitMinutePattern.matcher(timeInput);
// Matcher twoDigitMinuteMatcher = twoDigitMinutePattern.matcher(timeInput);
//
// return null;
// }
// public String convertHours(String timeInput){
// Pattern singleDigitHourPattern = Pattern.compile("[\\d][:]");
// Pattern twoDigitHourPattern = Pattern.compile("[\\d][\\d][:]");
// Matcher singleDigitHourMatcher = singleDigitHourPattern.matcher(timeInput);
// Matcher twoDigitHourMatcher = twoDigitHourPattern.matcher(timeInput);
// if(singleDigitHourMatcher.find()){
// }
// return null;
// }

public Integer[] stringSplit(String input){
String[] timeString = input.split(":");
String amOrPm = timeString[1].substring(2);
Integer hours = Integer.parseInt(timeString[0]);
Integer minutes = Integer.parseInt(timeString[1].substring(0,2));
Integer[] timeAsValues = new Integer[2];

if(hours != 12) {

if (amOrPm.contains("pm"))
hours += 12;
}

timeAsValues[0] = hours;
timeAsValues[1] = minutes;
System.out.println(timeAsValues[0]);
System.out.println(timeAsValues[1]);

return timeAsValues;
}

public Problem6(){
valuesAsStrings.add("Zero");//0
valuesAsStrings.add("One");//1
valuesAsStrings.add("Two");//2
valuesAsStrings.add("Three");//3
valuesAsStrings.add("Four");//4
valuesAsStrings.add("Five");//5
valuesAsStrings.add("Six");//6
valuesAsStrings.add("Seven");//7
valuesAsStrings.add("Eight");//8
valuesAsStrings.add("Nine");//9
valuesAsStrings.add("Ten");//10
valuesAsStrings.add("Eleven");//11
valuesAsStrings.add("Twelve");//12
valuesAsStrings.add("Thirteen");//13
valuesAsStrings.add("Fourteen");//14
valuesAsStrings.add("Fifteen");//15
valuesAsStrings.add("Sixteen");//16
valuesAsStrings.add("Seventeen");//17
valuesAsStrings.add("Eighteen");//18
valuesAsStrings.add("Nineteen");//19
valuesAsStrings.add("Twenty");//20
valuesAsStrings.add("Thirty");//21
valuesAsStrings.add("Forty");//22
valuesAsStrings.add("Fifty");//23
}

public static void main(String[] args){
Problem6 problem6 = new Problem6();
// problem6.stringSplit("11:30pm");
problem6.convertToMilitaryString("10:30pm");
}
}
59 changes: 59 additions & 0 deletions src/test/java/io/zipcoder/Problem6Test.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,63 @@
package io.zipcoder;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class Problem6Test {
private Problem6 problem6;
private String militaryString1;
private String militaryString2;
private String militaryString3;
private String militaryString4;
private String militaryString5;

@Before
public void setUp(){
problem6 = new Problem6();
militaryString1 = "1:30pm";
militaryString2 = "1:30am";
militaryString3 = "2:22pm";
militaryString4 = "2:11am";
militaryString5 = "10:02am";
}

@Test
public void convertToMilitaryStringTest1(){
String expected = "Thirteen Hundred and Thirty Hours";
String actual = problem6.convertToMilitaryString(militaryString1);
Assert.assertEquals(expected, actual);
}

@Test
public void convertToMilitaryStringTest2(){
String expected = "Zero One Hundred and Thirty Hours";
String actual = problem6.convertToMilitaryString(militaryString2);
Assert.assertEquals(expected, actual);
}

@Test
public void convertToMilitaryStringTest3(){
String expected = "Fourteen Hundred and Twenty Two Hours";
String actual = problem6.convertToMilitaryString(militaryString3);
Assert.assertEquals(expected, actual);
}

@Test
public void convertToMilitaryStringTest4(){
String expected = "Zero Two Hundred and Eleven Hours";
String actual = problem6.convertToMilitaryString(militaryString4);
Assert.assertEquals(expected, actual);
}

@Test
public void convertToMilitaryStringTest5(){
String expected = "Ten Hundred Zero Two Hours";
String actual = problem6.convertToMilitaryString(militaryString5);
Assert.assertEquals(expected, actual);
}

@Test
public void stringSplitTest(){
}
}