Friday, December 8, 2017

Display the earliest time in 12 hr format for the given 6 int value

Java Solution to display the earliest time for the given 6 int values in the 12 hour format

import java.util.Arrays;
/** * Program to display the earliest time displayed in the 12 HR format from the given input of 6 digits */public class TimeToDisplay {
    public String solution(int A, int B, int C, int D, int E, int F) {

        // write your code in Java SE 8
        int[] arr = {A, B, C, D, E, F};
        System.out.println(Arrays.toString(arr));
        Arrays.sort(arr);        
        int[] time = new int[6];
        time[0] = findMinVal(arr, 1); 
        if (time[0] == -1) { return "Invalid number: Time can not be displayed";}
        time[1] = findMinVal(arr, 2);
        if (time[1] == -1) { return "Invalid number: Time can not be displayed";}
        time[2] = findMinVal(arr, 5); 
       if (time[2] == -1) { return "Invalid number: Time can not be displayed";}
        time[4] = findMinVal(arr, 5);
        if (time[4] == -1) { return "Invalid number: Time can not be displayed";}
        time[3] = findMinVal(arr, 9);
        if (time[3] == -1) { return "Invalid number: Time can not be displayed";}
        time[5] = findMinVal(arr, 9); 
       if (time[5] == -1) { return "Invalid number: Time can not be displayed";}

        return time[0] + "" + time[1] + ":" + time[2] + "" + time[3] + ":" + time[4] + "" + time[5];    }

    public static int findMinVal(int[] arr, int predicate) {
        //System.out.println(Arrays.toString(arr));        if (arr.length != 6)
            return -1;
        int numToFind = -1; 
       int indexToRemove = -1;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > numToFind) {
                if (arr[i] <= predicate) {
                    numToFind = arr[i];
                    indexToRemove = I;
                    break;                }
            }
        }

        if (indexToRemove == -1) {
            return -1;        }

        arr[indexToRemove] = -1;
        return numToFind;    }

    public static void main(String args[]) throws Exception {
        TimeToDisplay s = new TimeToDisplay();
        String time = s.solution(1, 8, 3, 2, 6, 4);
        System.out.println(time);
        time = s.solution(4, 5, 3, 9, 2, 0);
        System.out.println(time); 
       time = s.solution(0,0,0,0,8,7); 
       System.out.println(time);
        time = s.solution(9,9,9,9,9,9); 
       System.out.println(time); 
       time = s.solution(0, 0,0 ,1, 1, 1);
        System.out.println(time);    }

}