Usando google .. salió esta classe/funciones que puedes usar para solventar el problema de ese rango de fechas .. (supongo que implementará el algorítmo que andas buscando):
http://phplens.com/phpeverywhere/adodb_date_library
Dice que trabaja con fechas: "Dates from 100 A.D. to 3000 A.D." .. creo que con eso ya te sobrará no?
Un saludo,