>>311
Calendar birth = ...;
Calendar death = ...;
Calendar mover = (Calendar)birth.clone();
int yy = getDiff(Calendar.YEAR, mover, death);
int mm = getDiff(Calendar.MONTH, mover, death);
int dd = getDiff(Calendar.DAY_OF_MONTH, mover, death);
int h = getDiff(Calendar.HOUR_OF_DAY, mover, death);
int m = getDiff(Calendar.MINUTE, mover, death);
int s = getDiff(Calendar.SECOND, mover, death);
int ms = getDiff(Calendar.MILLISECOND, mover, death);

private static int getDiff(int field, Calendar mover, Calendar death){
  int d = 0;
  while(! mover.after(death)){
    d ++;
    mover.add(field, 1);
  }
  mover.add(field, -1);
  return d - 1;
}
↓
DEATH: 2061/02/21 21:23:03.213
BIRTH: 1974/11/07 07:03:45.213
DIFF : 86/03/14 14:19:18.000