# File AlmanacForRuby/AlmanacSolarTerm.rb, line 189 def get_setsu_number(target_day) # 月ごとの、節の候補 # 1月の場合、節は"小寒"(SOLAR_TERM_NUMBER=22) # 2月の場合、節は"立春"(SOLAR_TERM_NUMBER=0) # 3月の場合、節は"啓蟄"(SOLAR_TERM_NUMBER=2) # 4月の場合、節は"清明"(SOLAR_TERM_NUMBER=4) # 5月の場合、節は"立夏"(SOLAR_TERM_NUMBER=6) # 6月の場合、節は"芒種"(SOLAR_TERM_NUMBER=8) # 7月の場合、節は"小暑"(SOLAR_TERM_NUMBER=10) # 8月の場合、節は"立秋"(SOLAR_TERM_NUMBER=12) # 9月の場合、節は"白露"(SOLAR_TERM_NUMBER=14) # 10月の場合、節は"寒露"(SOLAR_TERM_NUMBER=16) # 11月の場合、節は"立冬"(SOLAR_TERM_NUMBER=18) # 12月の場合、節は"大雪"(SOLAR_TERM_NUMBER=20) setsu_number = 2 * (target_day.month - 2) if 0 > setsu_number setsu_number = 22 end # 対象日と同年の上記で求めた節気番号の節の日が一致していることを # 確認する。 setsu_day = get_sekki_date_time(target_day.year, \ target_day.offset, \ setsu_number) if setsu_day != target_day setsu_number = 99 end return setsu_number end