Class AlmanacSolarTerm
In: AlmanacForRuby/AlmanacSolarTerm.rb
Parent: Object

二十四節気(Solar term)算出用クラスライブラリ

Authors:Yoshihiko Hara(GoroNeko)
Date:2010/08/22
Version:0.9.0
Copyright:Copyright (C) Yoshihiko Hara(GoroNeko), 2010. All rights reserved.
License:GNU GENERAL PUBLIC LICENSE Version 2

Methods

Constants

NAME = "AlmanacSolarTerm"   本クラスライブラリの、名前とバージョン
VERSION = "0.9.0"
SOLAR_TERM_NUMBER = Array.new([0,1,2,3,4,5, 6,7,8,9,10,11, 12,13,14,15,16,17, 18,19,20,21,22,23])   二十四節気のそれぞれの節気を示す 0(立春)~23(大寒)
SOLAR_TERM_NAME_J = Array.new(["立春", "雨水", "啓蟄", "春分", "清明", "穀雨", "立夏", "小満", "芒種", "夏至", "小暑", "大暑", "立秋", "処暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至", "小寒", "大寒"])   二十四節気の漢字和名
SOLAR_TERM_NAME_E = Array.new(["start of spring", "rain water", "awakening of insects", "vernal equinox", "clear and bright", "grain rain", "start of summer", "grain full", "grain in ear", "summer solstice", "minor heat", "major heat", "start of autumn", "limit of heat", " white dew", "autumnal equinox", " cold dew", "frost descent", "start of winter", "minor snow", "major snow", "winter solstice", "minor cold", "major cold"])   二十四節気の英名 ウィキペディア英語版の記事を参考にした (en.wikipedia.org/wiki/Solar_term)
SOLAR_TERM_DEGREE = Array.new([315.0, 330.0, 345.0, 360.0, 15.0, 30.0, 45.0, 60.0, 75.0, 90.0, 105.0, 120.0, 135.0, 150.0, 165.0, 180.0, 195.0, 210.0, 225.0, 240.0, 255.0, 270.0, 285.0, 300.0])   それぞれの節気の太陽黄経
SOLAR_TERM_MONTH = Array.new([2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 1, 1])   それぞれの節気が通常存在する月
SOLAR_TERM_DAY = Array.new([3, 17, 4, 19, 3, 19, 4, 19, 4, 20, 5, 21, 6, 21, 6, 21, 6, 22, 6, 21, 5, 20, 4, 19])   節気である可能性のある最初の日 ex.立春は2/3~2/6のどれかの日。故に立春である可能性のある最初の日は3日
DISTINCTION_OF_SETSU_AND_CHUU = Array.new([true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false])   節季が節である(true)、節でなく中である(false)の区別を返す

Public Instance methods

直前の中の日時情報を求める

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.中の日時情報(cyuu_date_time:AlmanacDateTime)

指定日時の中である節気番号(SOLAR_TERM_NUMBER)を求める

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.中番号(cyuu_number:Integer)

【備考】

  対象日が中の日でなかった場合は、節気番号として99(エラー)を返す

直前の中からの経過日数を返す

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.経過日数(lapsed_days:Integer)

直前の二至二分からの経過日数を返す

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.経過日数(lapsed_days:Integer)

直前の節からの経過日数を返す

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.経過日数(lapsed_days:Integer)

指定されたパラメタから、任意の日時の太陽の黄経を求める

【引数】

  1.対象年(year)
  2.対象月(month)
  3.対象日(day)
  4.対象時(hour)
  5.対象分(minute)
  6.対象秒(second)
  7.対象時差(of)

【戻り値】

  1.太陽の黄経(elso)

【備考】

  実際の太陽の黄経度の算出は、AlmanacAngleSunAndMoonクラスの
  ajd_to_elosメソッドが行う

直前の二至二分の日時情報を求める

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.二至二分の日時情報(nishinibun_date_time:AlmanacDateTime)

指定日時の二至二分番号(SOLAR_TERM_NUMBER)を求める

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.二至二分番号(nishinibun_number:Integer)

【備考】

  二至二分とは、二至(夏至・冬至)および二分(春分・秋分)を指す
  対象日が二至二分の日でなかった場合は、中番号として99(エラー)を返す

指定西暦年(year:Integer)かつ指定時差(of:Rational)の 指定節気(solar_term_number:Integer)の 年月日(sekki_date_time:AlmanacDateTime)を返す

【引数】

  1.対象年(year)
  2.時差(of)
  3.求める対象の節気(solar_term_number)

【戻り値】

  1.節季の年月日情報(sekki_date_time)

【備考】

  各節気は、節気である可能性のある最初の日(SOLAR_TERM_DAY)から+n日
  までのいづれかの日である

直前の節の日時情報を求める

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.節の日時情報(setsu_date_time:AlmanacDateTime)

指定日時の節である節気番号(SOLAR_TERM_NUMBER)を求める

【引数】

  1.対象日(target_day:AlmanacDateTime)

【戻り値】

  1.節番号(setsu_number:Integer)

【備考】

  対象日が節の日でなかった場合は、節気番号として99(エラー)を返す

[Validate]