We explicitly show how to simulate time-dependent sparse Hamiltonian evolution on a quantum computer, with complexity that is close to linear in the evolution time. The complexity also depends on the magnitude of the derivatives of the Hamiltonian. We propose a range of techniques to simulate Hamiltonians with badly behaved derivatives. These include using adaptive time steps, adapting the order of the integrators, and omitting regions about discontinuities. The complexity of the algorithm is quantified by calls to an oracle, which yields information about the Hamiltonian, and accounts for all computational resources. We explicitly determine the number of bits of output that this oracle needs to provide, and show how to efficiently perform the required 1-sparse unitary operations using these bits. We also account for discretization error in the time, as well as accounting for Hamiltonians that are a sum of terms that are sparse in different bases.