J'ai un objet Tâche qui a un nom et une date. La valeur de la date doit être String
. Un exemple est 11/9/2015 23:00
à comparer à 11/24/2015 12:00
. J'ai besoin d'aide pour écrire un compareTo()
afin que la tâche ayant la date la plus proche s'affiche en premier. Ce que j'ai est incorrect car il ne se compare pas correctement. Je sais qu'il existe des alternatives mais il faut que je le fasse avec String. J'ai envisagé d'utiliser .split()
pour diviser mm/jj/aaaa par "/"
mais je ne sais pas comment le faire.Comparaison d'une date de type Chaîne
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;
}
pouvez-vous convertir en un objet Date, puis comparer? – AbtPst
Copie possible de [Comparaison des chaînes de date en Java] (http: // stackoverflow.com/questions/10609596/comparaison-date-cordes-en-java) –
@AbtPst Non je dois juste utiliser 'String' – JCCS