to.tetramorph.starbase.lib
クラス TimePlace

java.lang.Object
  上位を拡張 to.tetramorph.starbase.lib.Place
      上位を拡張 to.tetramorph.starbase.lib.TimePlace
すべての実装されたインタフェース:
Serializable
直系の既知のサブクラス:
Transit

public class TimePlace
extends Place

場所であるPlaceに「時」の要素を加え「時と場所」を表すクラス。 完全なホロスコープは少なくとも時と場所が決定しなければ作成できないが、 このクラスのパラメターはその条件を満たす。

  時間の与え方
    java.sql.DateとTimeを使う。
   TimePlace tp = new TimePlace();
    tp.setDate(Date.valueOf("1964-9-30"),"AD");
    tp.setTime(Time.valueOf("5:35:00"));
    //グレゴリアンカレンダーを使う方法。月を-1するのを忘れずに。
    GregorianCalendar gcal = new GregorianCalendar(1964,9-1,30,5,35,0);
    //時間を未設定にしたいときはDATE_ONLYを指定。
    tp.setCalendar(gcal,TimePlace.DATE_AND_TIME);
 
今のところ、コンストラクタは必要最小限のものしか用意しておらず、各パラタメー はメソッドでセットすることにしている。テストの際は、現時刻でのインスタンス を作るとか、デフォルトのタイムゾーンで作るとかあると便利に思えるのだが、 アプリの中ではあまりそういう局面は存在しないため。

関連項目:
直列化された形式

フィールドの概要
static int DATE_AND_TIME
          setCalendar()に与える引数で、Calendar情報の日付と時刻の両方をこのオブジェクトにセットする。
static int DATE_ONLY
          setCalendar()に与える引数で、Calendar情報の日付のみ採用し時刻は未設定とする。
 
クラス to.tetramorph.starbase.lib.Place から継承されたフィールド
DECIMAL, latitude, longitude, PLACE_NAME_MAX_LENGTH, placeName, SEXAGESIMAL, timeZone
 
コンストラクタの概要
TimePlace()
          現在の日付と時刻とタイムゾーンがnullの空オブジェクトを作成
TimePlace(TimePlace o)
          TimeAndPlaceからディープコピーで完全な複製を作る。
 
メソッドの概要
 GregorianCalendar getCalendar()
          このクラスが保持している日時をカレンダーオブジェクトで返す。
 Date getDate()
          日付を返す。
static int[] getDateParams(String ymd)
          yyyy-mm-dd,hh:mm:ssを各桁に分割して整数配列で返す。
 String getERA()
          紀元前、紀元後を表す文字列を返す。
 String getFormattedDate()
          このオブジェクトのフォーマットされた日付を返す。
 double getJDay()
          このオブジェクトが表すユリウス日を返す。
 String getStringDate()
          文字列で日付を返す。
 String getStringTime()
          文字列で時刻を返す。
 Time getTime()
          時刻を返す。
 boolean isCompleteTimePlace()
          日付・時間・緯度・経度・タイムゾーンが登録されているならtrueを返す。
 void setCalendar(GregorianCalendar gcal, int mode)
          カレンダーの値をこのオブジェクトに設定する。
 void setDate(Date date, String era)
          日付をセットする。
 void setDate(String csvDate, String csvTime)
          日付文字列と時間文字列から日時をセットする。
 void setJDay(double jday)
          ユリウス日をこのオブジェクトにセットする。
 void setParams(ResultSet rs)
          DATE,ERA,TIME,PLACENAME,LATITUDE,LONGITUDE,TIMEZONEをrsから取得して、 このオブジェクトにセットする。
 void setTime(Time time)
          時刻をセットする。
 void setTimePlace(TimePlace tp)
          日付、時間、地名、緯度、経度、タイムゾーンをセットする。
 void setTimeZone(TimeZone timeZone)
          タイムゾーンをセットする
 String toString()
          このオブジェクトの表現を返す。
 
クラス to.tetramorph.starbase.lib.Place から継承されたメソッド
getFormattedTimeZone, getLatitude, getLongitude, getPlace, getPlaceName, getStringLatitude, getStringLongitude, getTimeZone, isCompletePlace, main, setLatitude, setLatitude, setLongitude, setLongitude, setPlace, setPlaceName
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

DATE_ONLY

public static final int DATE_ONLY
setCalendar()に与える引数で、Calendar情報の日付のみ採用し時刻は未設定とする。

関連項目:
定数フィールド値

DATE_AND_TIME

public static final int DATE_AND_TIME
setCalendar()に与える引数で、Calendar情報の日付と時刻の両方をこのオブジェクトにセットする。

関連項目:
定数フィールド値
コンストラクタの詳細

TimePlace

public TimePlace()
現在の日付と時刻とタイムゾーンがnullの空オブジェクトを作成


TimePlace

public TimePlace(TimePlace o)
TimeAndPlaceからディープコピーで完全な複製を作る。

メソッドの詳細

getDate

public Date getDate()
日付を返す。未登録ならnullを返す。

戻り値:
java.sql.Date

getStringDate

public String getStringDate()
文字列で日付を返す。頭に半角スペースまたはBCがついた日付文字列が返る。 未登録ならnullを返す。日付が未登録のケースはコンポジットデータの時以外あり えない


getTime

public Time getTime()
時刻を返す。未登録ならnullを返す。

戻り値:
java.sql.Time

getStringTime

public String getStringTime()
文字列で時刻を返す。未登録なら""を返す。時刻文字列先頭には半角スペースが 一つつく。


setDate

public void setDate(Date date,
                    String era)
日付をセットする。java.util.Dateではなく、java.sql.Dateであることに注意。

パラメータ:
date - java.sql.Dateの日付
era - "BC"を指定すると紀元前の日付を表す。他はADとみなされる。 大文字小文字は区別しない。

setDate

public void setDate(String csvDate,
                    String csvTime)
             throws IllegalArgumentException
日付文字列と時間文字列から日時をセットする。時間文字列はnullもしくは""を 指定すると、時刻は未設定に設定される。 日付文字列はバースデータファイルの形式で、"BC 1200-10-17" とか"AD 1964-9-30"とか、" 1964-09-30"など。日付の妥当性検査が行われ、異常な 値をセットしようとするとIllegalArgumentExceptionがスローされる。 異常な日付とは11月31日とかありえない日付のこと。異常な時刻とは24時とか-30分 などのこと。 CSVファイルのDATEフィールドを直接入力することができ、またその際、不正な日付 入力があればはじくことができる。

例外:
IllegalArgumentException

getERA

public String getERA()
紀元前、紀元後を表す文字列を返す。紀元前なら"BC",紀元後なら"AD"。

戻り値:
"BC"または"AD"

setTime

public void setTime(Time time)
時刻をセットする。フォーマットは"hh:mm:ss"。 このメソッドを呼ぶ前にかならずsetDateで日付がセットされていなければならない。 それでないとNullPointerExceptionが出る。

パラメータ:
time - java.sql.Timeオブジェクト

getJDay

public double getJDay()
このオブジェクトが表すユリウス日を返す。時刻が設定されていない場合は、 地方時における12時で計算する。この値をSwissエフェメリスに入れる。 チャートタイプがコンポジットの場合、このメソッドはNullPointerExceptionを出す。

戻り値:
ユリウス日

getCalendar

public GregorianCalendar getCalendar()
このクラスが保持している日時をカレンダーオブジェクトで返す。時刻が未設定の 場合はConfig.data.getProperty("DefaultTime")の値("hh:mm:dd")をデフォルトタイムと みなしてカレンダーの時刻を設定する。タイムゾーンも登録されている値が設定 される。 このメソッドが正しく実行されるためには、 Config.data.setProperty("DefaultTime","00:00:00")としてデフォルトタイムが事前に 設定されていなければならない。時間が省略された場合の計算時刻を決めておく必要 がある。未設定だとIllegalStateExceptionが出る。

戻り値:
グレゴリアンカレンダーオブジェクト
関連項目:
GregorianCalendar

getDateParams

public static int[] getDateParams(String ymd)
yyyy-mm-dd,hh:mm:ssを各桁に分割して整数配列で返す。


getFormattedDate

public String getFormattedDate()
このオブジェクトのフォーマットされた日付を返す。日付が未登録なら""を返す。 紀元前ならBCが頭につく。時刻が設定されていないときは省略される。
[BC ]yyyy-mm-dd [hh:mm:ss]

戻り値:
整形された日付と時間の文字列

setTimePlace

public void setTimePlace(TimePlace tp)
日付、時間、地名、緯度、経度、タイムゾーンをセットする。

パラメータ:
tp - TimePlaceオブジェクト

setTimeZone

public void setTimeZone(TimeZone timeZone)
タイムゾーンをセットする

オーバーライド:
クラス Place 内の setTimeZone
パラメータ:
timeZone - TimeZoneオブジェクト

toString

public String toString()
このオブジェクトの表現を返す。

オーバーライド:
クラス Place 内の toString
戻り値:
"1964-09-30 05:35:00 大阪府箕面市 JST"といった文字列

setParams

public void setParams(ResultSet rs)
               throws SQLException
DATE,ERA,TIME,PLACENAME,LATITUDE,LONGITUDE,TIMEZONEをrsから取得して、 このオブジェクトにセットする。ERAがNULLならば日付時間ともにnullとなる。 ERAは-1にセットされる。

オーバーライド:
クラス Place 内の setParams
例外:
SQLException

setCalendar

public void setCalendar(GregorianCalendar gcal,
                        int mode)
カレンダーの値をこのオブジェクトに設定する。日付、時刻、ERA、タイムゾーン、 が設定される。日付だけではなくタイムゾーンも設定されることに注意。

パラメータ:
gcal - グレゴリアンカレンダーオブジェクト
mode - DATE_ONLYならgcalの日付のみ設定し時刻は設定しない。 modeがDATE_AND_TIMEなら時刻もセットする。

setJDay

public void setJDay(double jday)
ユリウス日をこのオブジェクトにセットする。日付、時刻、ERA、タイムゾーン、 が設定される。ユリウス日からグレゴリオ暦(またはユリウス暦)への変換の際、 このオブジェクトにセットされているタイムゾーンが使用される。 タイムゾーンが未設定のときは、TimeZone.getDefault()のタイムゾーンがこの オブジェクトにセットされ使用される。


isCompleteTimePlace

public boolean isCompleteTimePlace()
日付・時間・緯度・経度・タイムゾーンが登録されているならtrueを返す。 一つでも欠けている場合はfalseを返す。