def ajd_to_ad(ajd, of)
float_ajd = ajd.to_f
float_of = of.to_f
float_jd = self.jd.to_f
float_hour_minute_second = float_ajd + 0.5 + float_of
float_hour_minute_second = float_hour_minute_second \
- float_hour_minute_second.to_i.to_f
float_hour_minute_second = float_hour_minute_second * DAY_TO_HOUR
int_hour = float_hour_minute_second.to_i
float_hour_minute_second = float_hour_minute_second - int_hour.to_f
float_hour_minute_second = float_hour_minute_second * HOUR_TO_MINUTE
int_minute = float_hour_minute_second.to_i
float_hour_minute_second = float_hour_minute_second - int_minute.to_f
float_hour_minute_second = float_hour_minute_second * MINUTE_TO_SECOND
int_second = float_hour_minute_second.to_i
float_hour_minute_second = float_ajd + 0.5 + float_of
float_year_month_day = float_hour_minute_second.to_i.to_f
float_hour_minute_second = float_hour_minute_second - float_year_month_day
float_Correction_year_month_day = float_year_month_day
if float_year_month_day >= NEW_STYLE_START_JD
float_Correction_work \
= ((float_year_month_day - 1867216.25) / 36524.3).to_i.to_f
float_Correction_year_month_day = float_year_month_day + 1.0 \
+ float_Correction_work \
- (float_Correction_work / 4).to_i.to_f
end
float_Correction_year_month_day \
= float_Correction_year_month_day + 1524.0
float_Correction_year \
= ((float_Correction_year_month_day - 122.1) / AVERAGE_YEAR_DAYS).to_i.to_f
float_Correction_day_work = (AVERAGE_YEAR_DAYS * float_Correction_year).to_i.to_f
float_month_work = 0.0
float_month_work_sub_1 \
= (float_Correction_year_month_day - float_Correction_day_work) / AVERAGE_MONTH_DAYS
float_month_work_sub_2 = float_month_work_sub_1.to_i.to_f
float_month_work_sub_3 = 0.0
float_month_work = float_month_work_sub_2
if float_month_work_sub_1 <= 0.0
float_month_work_sub_3 \
= (float_month_work_sub_1 - float_month_work_sub_2) * (-1)
if float_month_work_sub_3 >= 0.5
float_month_work -= 1.0
end
end
int_day = float_Correction_year_month_day.to_i \
- float_Correction_day_work.to_i \
- (AVERAGE_MONTH_DAYS * float_month_work).to_i \
+ float_hour_minute_second.to_i
if float_month_work < 13.5
float_month = float_month_work - 1.0
else
float_month = float_month_work - 13.0
end
int_month = float_month.to_i
if float_month > 2.5
int_year = float_Correction_year.to_i - 4716
else
int_year = float_Correction_year.to_i - 4715;
end
if int_month == 2 && int_day == 29
if int_year % 100 == 0 && int_year % 400 != 0
int_month = 3;
int_day = 1;
end
end
answer_almanac_date_time \
= AlmanacDateTime.civil(int_year, \
int_month, \
int_day, \
int_hour, \
int_minute, \
int_second, of)
return answer_almanac_date_time
end