147 votes

Comment trouver la différence entre deux Joda-Time DateTimes en quelques minutes

Voici la méthode que j'ai écrite

    public List<Map<String, Object>> loadNotYetInEmployee(int shift, Date date,
        int transitionVal, String type, User user) {

    DateTime datetime = new DateTime(date);
    datetime = datetime
            .plus(Period.minutes(shiftTiming.getSession1InTime()));

    List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();

    sql = SqlMapUtils.getSql("attendance.attendancestatus.latein",
            parameters);
    result = getJdbcTemplate().queryForList(sql);
    for (int i = 0; i < result.size(); i++) {
        Date punchInTime = (Date) result.get(i).get("punchtime");
        DateTime punchTime = new DateTime(punchInTime);

    }
    return result;

}

Maintenant, d'après ma méthode, vous pouvez voir que j'ai sur Joda-Time DateTime dans un objet nommé "datetime" et à partir de mon résultat j'obtiens un timestamp que je convertis en jodatime "punchTime" maintenant je veux trouver la différence entre ces deux dates. Veuillez m'aider si quelqu'un connaît la solution.

Merci d'avance

467voto

MadProgrammer Points 161522

Quelque chose comme...

DateTime today = new DateTime();
DateTime yesterday = today.minusDays(1);

Duration duration = new Duration(yesterday, today);
System.out.println(duration.getStandardDays());
System.out.println(duration.getStandardHours());
System.out.println(duration.getStandardMinutes());

Quelles sorties

1
24
1440

o

System.out.println(Minutes.minutesBetween(yesterday, today).getMinutes());

Ce qui est probablement plus ce que vous recherchez

82voto

alfredaday Points 876

Vous obtiendrez ainsi la différence entre deux objets DateTime en millisecondes :

DateTime d1 = new DateTime();
DateTime d2 = new DateTime();

long diffInMillis = d2.getMillis() - d1.getMillis();

12voto

Deepak Kumar Points 325

Alfredaday votre réponse est correcte mais j'ai une solution meilleure et rapide.

Minutes diff = Minutes.minutesBetween(punchTime, datetime);
int minutes = diff.getMinutes();

Mais merci pour votre soutien

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X