"Humaniser" ses dates en Java

Une classe écrite pour vous aider à rendre vos dates Java plus… User friendly. Le principe est vraiment simple, juste un peu de maths pour calculer le nombre de seconde dans une heure, une minute, un jour et etc…

Je me suis arrêté exprès aux jours pour vous laisser vous exercer avec les mois voire les années, alors à vous de jouer.

package com.marclabs.utils;

import java.util.Calendar;
import java.util.Date;

public class HumanizeDate{

    public static String getDateDifference(Date thenDate) {
        Calendar now = Calendar.getInstance();
        Calendar then = Calendar.getInstance();
        now.setTime(new Date());
        then.setTime(thenDate);


        // Recuperer la date en millisecondes
        long nowMs = now.getTimeInMillis();
        long thenMs = then.getTimeInMillis();

        // Calculer la différence en milllisecondes
        long diff = nowMs - thenMs;

        // Calculer la différence en secondes
        long diffMinutes = diff / (60 * 1000);
        long diffHours = diff / (60 * 60 * 1000);
        long diffDays = diff / (24 * 60 * 60 * 1000);
        long diffMonths = diff / (30 * 24 * 60 * 60 * 1000);

        if (diffMinutes < 60) {
            if (diffMinutes == 1)
                return " il y a une minute";
            else
                return "il y a "+diffMinutes+" minutes";
        } else if (diffHours < 24) {
            if (diffHours == 1)
                return "il y a une heure";
            else
                return  " il y a "+diffHours+" heures";
        } else if (diffDays < 30) {
            if (diffDays == 1)
                return "il y a un jour";
            else
                return  " il y a "+diffDays+" jours";
        } else {
            return "il y a un moment..";
        }
    }


}

Jean-Marc Amon

Jean-Marc est un développeur, Administrateur Système Linux et DevOps. Quand Il n'est pas sur un ordinateur, vous pouvez le trouver en train de lire, écrire ou profiter du soleil et de la mer. Son pseudo Twitter est @AmonMarc, et vous pouvez le trouver sur github.com/jebog

Abonnez-vous à ce blog

Rejoignez les 1 869 autres abonnés

Articles récents