public static int year_from_fixed(int date) {
int d = date - epoch;
int n_400 = CCMath.div_mod(out d, d, 146097);
int n_100 = CCMath.div_mod(out d, d, 36524);
int n_4 = CCMath.div_mod(out d, d, 1461);
int n_1 = CCMath.div(d, 365);
int year = 400*n_400 + 100*n_100 + 4*n_4 + n_1;
return (n_100 == 4 || n_1 == 4) ? year : year + 1;
}