解答:
import java.text.SimpleDateFormat;
import java.util.*;
public class Test {
public static int strToMinute(String str) {
String[] strs = str.split(":");
if(strs.length != 2) {
System.out.println("unvalid input");
return -1;
}
int hour = Integer.valueOf(strs[0]);
int minute = Integer.valueOf(strs[1]);
return (hour * 60 + minute);
}
public static int[] strToMinute(String[] starts){
int[] time=new int[starts.length];
for (int i = 0; i < starts.length; i++) {
time[i]=strToMinute(starts[i]);
}
return time;
}
public static String noticeTime(String deadline, String time, String[] starts) {
int toTime=strToMinute(deadline)-strToMinute(time);
int[] times = strToMinute(starts);
int min=24*60,k=0;
for (int i = 0; i < times.length; i++) {
if (toTime>times[i]){
min=toTime-times[i]>min?min:toTime-times[i];
}
}
k=toTime-min;
for (int i = 0; i < times.length; i++) {
if(times[i]==k){
k=i;
break;
}
}
return starts[k];
}
public static void main(String[] args) {
String deadline="11:00";
String time="01:10";
String[] starts={"08:00","09:40","10:00","09:30"};
String s = noticeTime(deadline, time, starts);
System.out.println(s);
}
}