Bonjour à tous,

je cherche une méthode simple pour comparer deux dates en ignorant l'heure.
J'ai une méthode existante qui utilise des méthodes dépréciées, que je voudrais réécrire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
private boolean dateBeforeOrEqual(Date date, Date dateRef) {
		GregorianCalendar dateCourante = new GregorianCalendar(date.getYear()+1900, date.getMonth(), date.getDate());
		GregorianCalendar dateReference = new GregorianCalendar(dateRef.getYear()+1900, dateRef.getMonth(), dateRef.getDate());
 
		if (dateCourante.before(dateReference) || dateCourante.equals(dateReference))
			return true;
		else
			return false;
	}
La solution que j'ai trouvée pour le moment est celle là:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private boolean dateBeforeOrEqual2(Date date, Date dateRef) {
		GregorianCalendar dateCourante = new GregorianCalendar();
		dateCourante.setTime(date);
		dateCourante.set(Calendar.HOUR_OF_DAY, 0);
		dateCourante.set(Calendar.MINUTE, 0);
		dateCourante.set(Calendar.SECOND, 0);
		dateCourante.set(Calendar.MILLISECOND, 0);
 
		GregorianCalendar dateReference = new GregorianCalendar();
		dateReference.setTime(dateRef);
		dateReference.set(Calendar.HOUR_OF_DAY, 0);
		dateReference.set(Calendar.MINUTE, 0);
		dateReference.set(Calendar.SECOND, 0);
		dateReference.set(Calendar.MILLISECOND, 0);
 
		if (dateCourante.before(dateReference) || dateCourante.equals(dateReference))
			return true;
		else
			return false;
	}
C'est un peu lourd...
Est-ce que vous voyez un meilleur moyen de réécrire cette méthode sans utiliser les méthodes dépréciées de la classe Date?