def get_oriental_zodiac_of_month_number(oriental_zodiac_date_time)
oriental_zodiac_date_time \
= oriental_zodiac_date_time.change_offset_to_japan(oriental_zodiac_date_time)
oriental_zodiac_of_month_number = 0
if 1900 > oriental_zodiac_date_time.year
oriental_zodiac_of_month_number = \
60 - (((13 - oriental_zodiac_date_time.month) \
+ ((1900 - (oriental_zodiac_date_time.year + 1)) * 12)) % 60)
else
oriental_zodiac_of_month_number = \
((oriental_zodiac_date_time.month - 1) \
+ ((oriental_zodiac_date_time.year - 1900) * 12)) % 60
end
oriental_zodiac_of_month_number += 14
sekki_number = 0
if 1 == oriental_zodiac_date_time.month
sekki_number = 22
else
sekki_number = (oriental_zodiac_date_time.month - 2) * 2
end
setsu_date_time \
= AlmanacSolarTerm.new.get_sekki_date_time(oriental_zodiac_date_time.year, \
oriental_zodiac_date_time.offset, \
sekki_number)
if setsu_date_time.day > oriental_zodiac_date_time.day
oriental_zodiac_of_month_number -= 1
end
if oriental_zodiac_of_month_number > 59
oriental_zodiac_of_month_number -= 60
end
return oriental_zodiac_of_month_number
end