def get_nishinibun_immediately_before_target_day(target_day)
nishinibun_date_time = AlmanacDateTime.now
last_year_touji_date_time \
= get_sekki_date_time((target_day.year - 1), target_day.offset, 21)
current_year_shunbun_date_time \
= get_sekki_date_time(target_day.year, target_day.offset, 3)
current_year_geshi_date_time \
= get_sekki_date_time(target_day.year, target_day.offset, 9)
current_year_shuubun_date_time \
= get_sekki_date_time(target_day.year, target_day.offset, 15)
current_year_touji_date_time \
= get_sekki_date_time(target_day.year, target_day.offset, 21)
temporary_date_time_array = Array.new([current_year_touji_date_time, \
current_year_shuubun_date_time, \
current_year_geshi_date_time, \
current_year_shunbun_date_time, \
last_year_touji_date_time])
i = 4
nishinibun_date_time = temporary_date_time_array[4]
while target_day.ajd > temporary_date_time_array[i].ajd
nishinibun_date_time = temporary_date_time_array[i]
i -= 1
end
return nishinibun_date_time
end