# File AlmanacForRuby/AlmanacSolarTerm.rb, line 356
  def get_cyuu_immediately_before_target_day(target_day)

    # 中の日の格納域
    cyuu_date_time = AlmanacDateTime.now

    # 月ごとの、直前の中候補
    # 1月の場合、直前の中は"大寒"(SOLAR_TERM_NUMBER=23)
    # または"冬至"(SOLAR_TERM_NUMBER=21)
    # 2月の場合、直前の中は"雨水"(SOLAR_TERM_NUMBER=1)
    # または"大寒"(SOLAR_TERM_NUMBER=23)
    # 3月の場合、直前の中は"春分"(SOLAR_TERM_NUMBER=3)
    # または"雨水"(SOLAR_TERM_NUMBER=1)
    # 4月の場合、直前の中は"穀雨"(SOLAR_TERM_NUMBER=5)
    # または"春分"(SOLAR_TERM_NUMBER=3)
    # 5月の場合、直前の中は"小満"(SOLAR_TERM_NUMBER=7)
    # または"穀雨"(SOLAR_TERM_NUMBER=5)
    # 6月の場合、直前の中は"夏至"(SOLAR_TERM_NUMBER=9)
    # または"小満"(SOLAR_TERM_NUMBER=7)
    # 7月の場合、直前の中は"大暑"(SOLAR_TERM_NUMBER=11)
    # または"夏至"(SOLAR_TERM_NUMBER=9)
    # 8月の場合、直前の中は"処暑"(SOLAR_TERM_NUMBER=13)
    # または"大暑"(SOLAR_TERM_NUMBER=11)
    # 9月の場合、直前の中は"秋分"(SOLAR_TERM_NUMBER=15)
    # または"処暑"(SOLAR_TERM_NUMBER=13)
    # 10月の場合、直前の中は"霜降"(SOLAR_TERM_NUMBER=17)
    # または"秋分"(SOLAR_TERM_NUMBER=15)
    # 11月の場合、直前の中は"小雪"(SOLAR_TERM_NUMBER=19)
    # または"霜降"(SOLAR_TERM_NUMBER=17)
    # 12月の場合、直前の中は"冬至"(SOLAR_TERM_NUMBER=21)
    # または"小雪"(SOLAR_TERM_NUMBER=19)
    target_solar_term_number = 1 + 2 * (target_day.month - 2)
    if 0 > target_solar_term_number
      target_solar_term_number = 23
    end
    other_target_solar_term_number  = 1 + 2 * (target_day.month - 3)
    if 0 > other_target_solar_term_number
      other_target_solar_term_number  = 21 + 2 * (target_day.month - 1)
    end

    # 直前の中の日を求める
    cyuu_date_time \
      = get_sekki_date_time( \
          target_day.year, \
          target_day.offset, \
          target_solar_term_number)
    if cyuu_date_time.day > target_day.day
      if other_target_solar_term_number == 21
        target_day.year -= 1
      end
      cyuu_date_time \
        = get_sekki_date_time( \
            target_day.year, \
            target_day.offset, \
            other_target_solar_term_number)
    end

    return cyuu_date_time
  end