I have a List containing time info as follows,
List<String> dayList = new LinkedList<String>();
dayList.add("00:00-23:59");
I need to find out the list satisfies the full day or not.
And what i tried is,
List<String> dayList = new LinkedList<String>();
dayList.add("00:00-12:59");
dayList.add("13:00-20:30");
dayList.add("20:31-23:59");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
long totalMinutes = 0;
for(String data : dayList){
Date startDate = sdf.parse(data.split("-")[0]);
Date endDate = sdf.parse(data.split("-")[1]);
totalMinutes += TimeUnit.MILLISECONDS.toMinutes(endDate.getTime()-startDate.getTime());
}
if(totalMinutes==(1439-(dayList.size()-1))){
System.out.println("Completes Full Day");
} else{
System.out.println("Not Completes Full Day");
}
NB : The List item can be overlap each other.
This logic fails if list contains
11:00-09:59
&10:00-10:59
(Completes full day)00:00-11:59
&00:00-11:59
(Not Completes full day)etc..
Can any one suggest any other logic ?