Publié le 13/09/2010
Auteur Axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Comparer 2 dates avec l'objet Calendar

Travailler avec les dates est bien souvent un casse-tete, rien que de déterminer si une Date A est avant ou après une Date B est déjà un défi.

Savoir si une date est avant ou après

Pour savoir si une date est supérieur à une autre, on peut comparer soi-męme le nombre de millisecondes de chaque date. Ou alors utiliser les fonctions after et before de l'objet Calendar.
import java.text.SimpleDateFormat;
import java.util.Calendar;
 
/**
 * Comparer des date avec l'objet Calendar
 * @author Axel
 * http://www.fobec.com/java/997/comparer-dates-avec-objet-calendar.html
 */
public class DateCompare {
    public static void main(String[] args) {
        SimpleDateFormat df=new SimpleDateFormat("dd/MM/yyyy");
        //Par défaut, date d'aujourd'hui
        Calendar calAujourdhui = Calendar.getInstance();
        //Fixe à la date d'hier
        Calendar calYesterday = Calendar.getInstance();
        calYesterday.add(Calendar.DAY_OF_MONTH, -1);
 
        if (calYesterday.equals(calAujourdhui)) {
            System.out.println("Les dates sont identiques");
        } else if (calYesterday.after(calAujourdhui)) {
           System.out.println(df.format(calYesterday.getTime())+" est supérieur à "+df.format(calAujourdhui.getTime()));
        } else if (calYesterday.before(calAujourdhui)) {
           System.out.println(df.format(calYesterday.getTime())+" est inférieur à "+df.format(calAujourdhui.getTime()));
        }
    }
}

Ces fonctions sont pratiques si l'on veut trier une liste de date. Par exemple, dans l’algorithme Quicksort, les éléments sont triés grâce à une comparaison ayant 3 résultats: égal, supérieur et inférieur. L'objet JAVA Calendar dispose justement de ces 3 comparaisons pour déterminer si une date est égale à une autre ou si la date est avant ou après une autre date.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
13/09/2010
Visualisation
vu 5982 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Souti dans php5

Merci pour ce code. Trs utile.

Pour mon cas, il a fallu que j'ajoute une } avant ?> le pour fermer le for each.

Publié par Alpcom dans java

Salut , juste signaler une petite faute de frappe dans mouseDragged
ce n'est pas int y = p.y - newPos.x;
int y = p.y - newPos.y; !! des comportements curieux apparaissaient sinon merci beaucoup...

Publié par etoiliste010 dans java

BONSOIR le code compile mais
Grave: null
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. gd4sm1845967wib.6

at com.sun.mail.smtp.SMTPTransport.i...

Publié par Etiazam dans php5

Si je peux me permettre, il manque l'incrementation dans les deux boucles, telles qu'elles sont presentees elles font tourner le navigateur en rond, il faut donc ajouter
for ($x=0;$x<50;$x...

Publié par jpa71 dans java

Efficace.. Bien commente.. Du code bien pense
Bravo