in archiva-jarinfo/archiva-jarinfo-cli/src/main/java/org/apache/archiva/common/utils/DateUtil.java [55:110]
public static String getDuration( Calendar cal1, Calendar cal2 )
{
int year1 = cal1.get( Calendar.YEAR );
int day1 = cal1.get( Calendar.DAY_OF_YEAR );
int hour1 = cal1.get( Calendar.HOUR_OF_DAY );
int min1 = cal1.get( Calendar.MINUTE );
int sec1 = cal1.get( Calendar.SECOND );
int ms1 = cal1.get( Calendar.MILLISECOND );
int year2 = cal2.get( Calendar.YEAR );
int day2 = cal2.get( Calendar.DAY_OF_YEAR );
int hour2 = cal2.get( Calendar.HOUR_OF_DAY );
int min2 = cal2.get( Calendar.MINUTE );
int sec2 = cal2.get( Calendar.SECOND );
int ms2 = cal2.get( Calendar.MILLISECOND );
int leftDays = ( day1 - day2 ) + ( year1 - year2 ) * 365;
int leftHours = hour2 - hour1;
int leftMins = min2 - min1;
int leftSeconds = sec2 - sec1;
int leftMilliSeconds = ms2 - ms1;
if ( leftMilliSeconds < 0 )
{
leftMilliSeconds += 1000;
--leftSeconds;
}
if ( leftSeconds < 0 )
{
leftSeconds += 60;
--leftMins;
}
if ( leftMins < 0 )
{
leftMins += 60;
--leftHours;
}
if ( leftHours < 0 )
{
leftHours += 24;
--leftDays;
}
StringBuffer interval = new StringBuffer();
appendInterval( interval, leftDays, "Day" );
appendInterval( interval, leftHours, "Hour" );
appendInterval( interval, leftMins, "Minute" );
appendInterval( interval, leftSeconds, "Second" );
appendInterval( interval, leftMilliSeconds, "Millisecond" );
return interval.toString();
}