# File AlmanacForRuby/AlmanacSolarTerm.rb, line 476
  def get_nishinibun_immediately_before_target_day(target_day)

    # 二至二分の日の格納域
    nishinibun_date_time = AlmanacDateTime.now

    # 直前の二至二分となりうる二至二分の候補は以下の5件
    # 以下の5件と指定日のajdを比較し、直前の二至二分を探し出す
    # 前年12月の"冬至"(SOLAR_TERM_NUMBER=21)
    # 今年3月の"春分"(SOLAR_TERM_NUMBER=3)
    # 今年6月の"夏至"(SOLAR_TERM_NUMBER=9)
    # 今年9月の"秋分"(SOLAR_TERM_NUMBER=15)
    # 今年12月の"冬至"(SOLAR_TERM_NUMBER=21)

    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