2012-09-26 6 views
1

Y a-t-il un moyen d'organiser un nombre de jours calculé en calculant la différence entre deux dates, dans différentes sections, par ex. Pendant 364 jours ce serait: 0 ans, 11 mois, 30 jours, heures, minutes etc. Je pensais que l'utilisation d'opérateurs logiques pourrait fonctionner comme% et/mais comme les différents mois ont des quantités différentes de jours et certaines années sont des années bissextiles Je ne sais pas comment le faire. Toute aide serait très appréciée. Mon code:Organiser le nombre de jours dans des sections distinctes pour l'année, les mois, les jours, les heures. Java

import java.util.*; 

public class CleanDate { 

    public static void main(String[] args) { 
     Calendar cDate = GregorianCalendar.getInstance(); 
     cDate.set(2011, 0, 31, 00, 00, 00); 
     Date date1 = cDate.getTime(); 
     Date date2 = new Date(); 
     Calendar calendar1 = Calendar.getInstance(); 
     Calendar calendar2 = Calendar.getInstance(); 
     calendar1.setTime(date1); 
     calendar2.setTime(date2); 
     long milliseconds1 = calendar1.getTimeInMillis(); 
     long milliseconds2 = calendar2.getTimeInMillis(); 
     long diff = milliseconds2 - milliseconds1; 
     long diffSeconds = diff/1000; 
     long diffMinutes = diff/(60 * 1000); 
     long diffHours = diff/(60 * 60 * 1000); 
     long diffDays = diff/(24 * 60 * 60 * 1000); 
     System.out.println("Time in minutes: " + diffMinutes + " minutes."); 
     System.out.println("Time in hours: " + diffHours + " hours."); 
     System.out.println("Time in days: " + diffDays + " days."); 
    } 
} 
+1

Apprenez et utilisez l'heure JODA. Ce n'est pas une bonne idée. – duffymo

+0

Combien de temps dure, par exemple, _ "Deux mois, onze jours"? –

+0

Je souhaite que la période soit définie par l'utilisateur, afin que l'utilisateur entre une date et qu'elle affiche les années, les mois et les jours depuis cette date. Je vais regarder dans le temps de Joda. Merci pour l'aide – Will

Répondre

3

Vous pourriez utiliser efficacement Joda Time comme ceci: Interval permet d'obtenir l'intervalle de temps entre deux dates.

DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0); 
Interval interval = new Interval(start, end); 
Period period = interval.toPeriod(); 
System.out.println(period.getYears()+" years, " 
period.getMonths()+" months, "+period.getWeeks()+" weeks, "+period.getDays()+", days"); 
Questions connexes