我有一個任務對象,有一個名稱和一個日期。日期值必須是String
。一個示例是11/9/2015 23:00
與11/24/2015 12:00
進行比較。 我需要幫助,爲此編寫compareTo()
,以便最早顯示最早日期的任務。我所擁有的是不正確的,因爲它沒有正確比較。我知道有替代品,但它是必需的,我用String來做到這一點。我曾考慮使用.split()
將mm/dd/yyyy分割爲"/"
,但不知道如何執行此操作。比較類型的日期字符串
public class Task implements Comparable<Task> {
/** Task name. */
private String name;
/** Task due date. */
private String dueDate;
/**
* Initializes a tasks name and due date.
* @param n Name
* @param d due date
*/
public Task(String n, String d) {
name = n;
dueDate = d;
}
/**
* Accessor for task name.
* @return Task name.
*/
public String getName() {
return name;
}
/**
* Accessor for task due date.
* @return Task due date.
*/
public String getDueDate() {
return dueDate;
}
/**
* Compares the due dates of the tasks to get the soonest to the front of the list.
* @param t The task to compare.
* @return The tasks in chronological order.
*/
@Override
public int compareTo(Task t) { //Need help here.
int val = dueDate.compareTo(t.getDueDate());
if(val == 0) {
val = name.compareTo(t.getName());
}
if(dueDate.compareTo(t.getDueDate()) > 0) {
val = -1;
}
if(dueDate.compareTo(t.getDueDate()) < 0) {
val = 1;
}
return val;
}
可以轉換爲Date對象然後比較嗎? – AbtPst
[在Java中比較日期字符串](http:// stackoverflow。com/questions/10609596/comparison-date-strings-in-java) –
@AbtPst不,我必須使用'String' – JCCS