LHA Library for Java

jp.gr.java_conf.dangan.util
Class WindowsDate

java.lang.Object
  extended by java.util.Date
      extended by jp.gr.java_conf.dangan.util.WindowsDate
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<java.util.Date>

public class WindowsDate
extends java.util.Date
implements java.lang.Cloneable

WindowsのFILETIME形式の情報を扱うDateの派生クラス。
FILETIME は 1601年 1月 1日 0時0分0秒からの経過時間を 100ナノ秒単位で持つ64ビット値。
このクラスでは FILETIME を long(64ビット値)として扱うときは 基本的に符号無しとみなす。
1601年 1月 1日 0時0分0秒以前の時間を扱いたい場合は WindowsDate( Date date ) か、WindowsDate.setTime( long time )を使用する。

 -- revision history --
 $Log: WindowsDate.java,v $
 Revision 1.1  2002/12/05 00:00:00  dangan
 [maintenance]
     javadoc コメントのスペルミスを修正。
     ソース整備

 Revision 1.0  2002/08/05 00:00:00  dangan
 add to version control
 [bug fix] 
     set系メソッドで 範囲外の時間をセットしようとして
     例外を投げるケースで時間の書き戻しが正しく行われていなかった。
     checkRange の時間の範囲が間違っていた。
 [maintenance]
     タブの廃止
     ライセンス文の修正

 

Version:
$Revision: 1.1 $
Author:
$Author: dangan $
See Also:
Serialized Form

Field Summary
static long TIME_DIFFERENCE
          FILETIME形式のデータと、java.util.Date.getTime() で 得られる時間形式との時間差を 100ナノセカンド単位で示した数値。 なお、閏秒等は考慮に入れていない。
 
Constructor Summary
WindowsDate()
          デフォルトコンストラクタ。 現在の時間情報を持つ WindowsDateを構築する。 ナノ秒単位の時間は取得できないため、0に設定される。
WindowsDate(java.util.Date date)
          dateで示される時間を表す WindowsDateを構築する。
dateが WindowsDate のインスタンスならば ナノ秒単位の情報もコピーされるが、それ以外の場合は ナノ秒単位の情報には 0 が設定される。
WindowsDate(long time)
          符号無し64ビットのFILETIME形式の時間情報から 新しいWindowsDateを構築する。
 
Method Summary
 java.lang.Object clone()
          このオブジェクトのコピーを返す。
 long getWindowsTime()
          この WindowsDateが示す時間情報を FILETIME 形式で得る。
 void setDate(int date)
          Deprecated.  
 void setHours(int hours)
          Deprecated.  
 void setMinutes(int minutes)
          Deprecated.  
 void setMonth(int month)
          Deprecated.  
 void setSeconds(int seconds)
          Deprecated.  
 void setTime(long time)
          この WindowsDate の示す時間を 1970年1月1日 00:00:00 GMTから time ミリ秒経過した時刻に設定する。
このメソッドは範囲チェックを行うだけのために存在する。
 void setWindowsTime(long time)
          この WindowsDate に FILETIME形式の時間情報を設定する。
 void setYear(int year)
          Deprecated.  
 
Methods inherited from class java.util.Date
after, before, compareTo, equals, getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getYear, hashCode, parse, toGMTString, toLocaleString, toString, UTC
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

TIME_DIFFERENCE

public static final long TIME_DIFFERENCE
FILETIME形式のデータと、java.util.Date.getTime() で 得られる時間形式との時間差を 100ナノセカンド単位で示した数値。 なお、閏秒等は考慮に入れていない。

See Also:
Constant Field Values
Constructor Detail

WindowsDate

public WindowsDate()
デフォルトコンストラクタ。 現在の時間情報を持つ WindowsDateを構築する。 ナノ秒単位の時間は取得できないため、0に設定される。

Throws:
java.lang.IllegalArgumentException - 現在の時間が FILETIME 形式で表現できる 範囲外だった場合。

WindowsDate

public WindowsDate(java.util.Date date)
dateで示される時間を表す WindowsDateを構築する。
dateが WindowsDate のインスタンスならば ナノ秒単位の情報もコピーされるが、それ以外の場合は ナノ秒単位の情報には 0 が設定される。

Parameters:
date - 新しく構築される WindowsDate の元となる時間情報を持つ Date のオブジェクト
Throws:
java.lang.IllegalArgumentException - 現在の時間が FILETIME 形式で表現できる 範囲外だった場合。

WindowsDate

public WindowsDate(long time)
符号無し64ビットのFILETIME形式の時間情報から 新しいWindowsDateを構築する。

Parameters:
time - FILETIME形式の時間情報
Method Detail

clone

public java.lang.Object clone()
このオブジェクトのコピーを返す。

Overrides:
clone in class java.util.Date
Returns:
このWindowsDateオブジェクトの複製

setYear

public void setYear(int year)
Deprecated. 

この WindowsDate の示す年を year で 指定された値に1900を足したものに設定する。
このメソッドは範囲チェックを行うだけのために存在する。

Overrides:
setYear in class java.util.Date
Parameters:
year - 1900を足すことで西暦を表すような 年の値
Throws:
java.lang.IllegalArgumentException - year に変更したところ FILETIME形式で扱えない 範囲の時間になった場合

setMonth

public void setMonth(int month)
Deprecated. 

この WindowsDate の示す月を month で指定された値に設定する。
このメソッドは範囲チェックを行うだけのために存在する。

Overrides:
setMonth in class java.util.Date
Parameters:
month - 0が1月、1が2月を示すような月の値
Throws:
java.lang.IllegalArgumentException - month に変更したところ FILETIME形式で扱えない 範囲の時間になった場合

setDate

public void setDate(int date)
Deprecated. 

この WindowsDate の示す 一ヶ月の 中での何日目かを date で指定された値に設定する。
このメソッドは範囲チェックを行うだけのために存在する。

Overrides:
setDate in class java.util.Date
Parameters:
date - 1が1日、2が2日を示すような日の値
Throws:
java.lang.IllegalArgumentException - date に変更したところ FILETIME形式で扱えない 範囲の時間になった場合

setHours

public void setHours(int hours)
Deprecated. 

この WindowsDate の示す一日の中での時間を hours で指定された値に設定する。
このメソッドは範囲チェックを行うだけのために存在する。

Overrides:
setHours in class java.util.Date
Parameters:
hours - 時間の値
Throws:
java.lang.IllegalArgumentException - hours に変更したところ FILETIME形式で扱えない 範囲の時間になった場合

setMinutes

public void setMinutes(int minutes)
Deprecated. 

この WindowsDate の示す一時間の中での分を minutes で指定された値に設定する。
このメソッドは範囲チェックを行うだけのために存在する。

Overrides:
setMinutes in class java.util.Date
Parameters:
minutes - 分の値
Throws:
java.lang.IllegalArgumentException - minutes に変更したところ FILETIME形式で扱えない 範囲の時間になった場合

setSeconds

public void setSeconds(int seconds)
Deprecated. 

この WindowsDate の示す一分の中での秒数を secounds で指定された値に設定する。
このメソッドは範囲チェックを行うだけのために存在する。

Overrides:
setSeconds in class java.util.Date
Parameters:
secounds - 秒数
Throws:
java.lang.IllegalArgumentException - secounds に変更したところ FILETIME形式で扱えない 範囲の時間になった場合

setTime

public void setTime(long time)
この WindowsDate の示す時間を 1970年1月1日 00:00:00 GMTから time ミリ秒経過した時刻に設定する。
このメソッドは範囲チェックを行うだけのために存在する。

Overrides:
setTime in class java.util.Date
Parameters:
time - 1970年1月1日 00:00:00GMT からの経過ミリ秒
Throws:
java.lang.IllegalArgumentException - time がFILETIME形式で扱えない 範囲の時間を示していた場合

setWindowsTime

public void setWindowsTime(long time)
この WindowsDate に FILETIME形式の時間情報を設定する。

Parameters:
time - FILETIME形式の時間情報

getWindowsTime

public long getWindowsTime()
この WindowsDateが示す時間情報を FILETIME 形式で得る。

Returns:
FILETIME形式の値

LHA Library for Java

When you found typographical errors or omissions, Please mail to cqw10305@nifty.com
The company name and product name which are used in this document, it is the trademark or registered trademark of each company generally.
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.