public static String getDuration()

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();
    }