检查数组以查看它是否具有已经过去的日期
Checking an array to see if it has dates which have already past
我有一组任务对象。任务有截止日期。该数组按从最早到最晚的日期排序。我做了一个方法,应该 return 今天之前的最后一个任务的位置。换句话说,它必须检查每个任务是否在今天之前,一旦它到达今天之后的任务停止和 return 今天之前的最后一个任务的位置。如果第一个任务是在今天之后,它应该 return -1。但是,该方法未按预期运行。我能知道为什么这不起作用吗:
public int overdue() {
int i = -1;
this.sort();
Date Today = new Date();
DateFormat dateFormat = new SimpleDateFormat("dd MMMMM yyyy");
String todayString = dateFormat.format(Today);
try {
Today = new SimpleDateFormat("dd MMMM yyyy").parse(todayString);
} catch (ParseException ex) {
Logger.getLogger(HomeworkDiary.class.getName()).log(Level.SEVERE, null, ex);
}
while (Today.after(diary[i+1].getDue_Date().getTime()) == true) {
i++;
}
return i;
}
如果您的 dairy 数组只包含今天之前的截止日期,您将得到一个 ArrayIndexOutOfBoundsException。
假设你的 dairy[].getDue_Date() returns 是一个 Date 对象,我会这样写:
int lastOverDue = -1;
int i = 0;
while (i < dairy.length && Today.after(dairy[i].getDue_Date()) ) {
lastOverDue++;
i++;
}
让我知道它是否适合你。
我有一组任务对象。任务有截止日期。该数组按从最早到最晚的日期排序。我做了一个方法,应该 return 今天之前的最后一个任务的位置。换句话说,它必须检查每个任务是否在今天之前,一旦它到达今天之后的任务停止和 return 今天之前的最后一个任务的位置。如果第一个任务是在今天之后,它应该 return -1。但是,该方法未按预期运行。我能知道为什么这不起作用吗:
public int overdue() {
int i = -1;
this.sort();
Date Today = new Date();
DateFormat dateFormat = new SimpleDateFormat("dd MMMMM yyyy");
String todayString = dateFormat.format(Today);
try {
Today = new SimpleDateFormat("dd MMMM yyyy").parse(todayString);
} catch (ParseException ex) {
Logger.getLogger(HomeworkDiary.class.getName()).log(Level.SEVERE, null, ex);
}
while (Today.after(diary[i+1].getDue_Date().getTime()) == true) {
i++;
}
return i;
}
如果您的 dairy 数组只包含今天之前的截止日期,您将得到一个 ArrayIndexOutOfBoundsException。
假设你的 dairy[].getDue_Date() returns 是一个 Date 对象,我会这样写:
int lastOverDue = -1;
int i = 0;
while (i < dairy.length && Today.after(dairy[i].getDue_Date()) ) {
lastOverDue++;
i++;
}
让我知道它是否适合你。