/** * Given normalized values, determines order-relation * between give date/time objects. * * @param date1 date/time object * @param date2 date/time object * @return 0 if date1 and date2 are equal, a value less than 0 if date1 is less than date2, a value greater than 0 if date1 is greater than date2 */ protected short compareOrder (int[] date1, int[] date2) { for ( int i=0; i < COMPARABLE_SUBSET;i++ ) { if (date1[i] < date2[i]) { return -1; } else if (date1[i] > date2[i]) { return 1; } } // Compare subsecond components int maxScale = Math.max(date1[msscale], date2[msscale]); int ss1 = scale(date1[ms], date1[msscale], maxScale); int ss2 = scale(date2[ms], date2[msscale], maxScale); if (ss1 < ss2) { return -1; } else if (ss1 > ss2) { return 1; } return 0; }