Adaptive Finite-Time Control