Background
My son has just watched Brian Cox's fascinating "The Science of Doctor Who" lecture on space-time and was particularly intrigued by the part (at 22m:22s) where he said:
Let us say that we catapult Jim off at 99.94% of the speed of light for five years, according to his watch. Then, we tell Jim to turn around and come back. It takes another five years to get back to the Earth, so for him the journey would take ten years. But for us, with our watches ticking faster than Jim's, 29 years would have passed.
He wanted me to show him how to calculate this, but I need help!
Question
How do you calculate that a trip for 10 years at 99.94% of the speed of light results in 29 years being passed at Earth?
What I've tried
First we tried applying a relativistic distortion based on the rocket instantly moving to the speed of light, but this resulted in Earth dwellers having aged by 288 years.
Second we tried assuming the rocket had a constant acceleration (in its frame of reference) and first accelerated to 99.94%, then decelerated to come to a stop, then accelerated backwards to 99.94%, and then decelerated to stop at the Earth. This results (according to our sums based on the wikipedia page on time dilation) in the people on the rocket aging 4 years, not 10.
Perhaps we have made a mistake in the calculations (shown below)? Or perhaps there is another common model of acceleration that we should use? (Perhaps one that assumes we have more fuel at the start so our acceleration is slower initially?)
Method
Python code:
from math import *
c=299792458.
v=c*99.94/100.
year=365.25*24*60*60.
print 'First assume we instantly accelerate to our final speed'
rocket=10*year
earth=rocket/sqrt(1-v**2/c**2)
print 'On Earth people have aged by',earth/year,'years'
print
t=29*year/4
g = sqrt(v**2/(1-v**2/c**2))/t
print 'Now assume a constant acceleration of',g,'metres per second per second'
print 'After 29/4 years we accelerate to a speed of',g*t/sqrt(1+(g*t)**2/c**2)
pt=(c/g)*asinh(g*t/c)
print 'This takes',pt/year,'years of proper time'
print 'so the complete journey will last',4*pt/year,'years for the spacemen'