Those rudimentary calculations of mine are all nice and fun, but I do want to understand the offical calculation. !!

The initial reward is diff * 8 and decreasing with every block found. Actually it isn't linear so the reward won't halve every year but be 8 * diff / number_of_years_passed.