Integer (long moment) { int range = myEnd.getValue() - myBegin.getValue(); long duration = myEnd.getMoment() - myBegin.getMoment(); long elapsed = moment - myBegin.getMoment(); double fraction = (double)elapsed / duration; return (int)Math.round((double)myBegin.getValue() + fraction * range); }