LHA Library for Java

jp.gr.java_conf.dangan.util
クラス MsdosDate

java.lang.Object
  拡張java.util.Date
      拡張jp.gr.java_conf.dangan.util.MsdosDate
すべての実装インタフェース:
Cloneable, Comparable, Serializable

public class MsdosDate
extends Date
implements Cloneable

MS-DOS形式の時間情報を扱うDateの派生クラス。
データは 4byte値であり、MS-DOSが 主にIntel の x86系CPU上で 動作したことから LittleEndianで格納される。
フォーマットは以下のとおり。

 +---------------+---------------++---------------+---------------+
 | 日付-上位byte | 日付-下位byte || 時刻-上位byte | 時刻-下位byte |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |7|6|5|4|3|2|1|0|7|6|5|4|3|2|1|0||7|6|5|4|3|2|1|0|7|6|5|4|3|2|1|0|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |   年-7bit   |月-4bit| 日-5bit ||時間-5bit|  分-6bit  | 秒-5bit |
 +-------------+-------+---------++---------+-----------+---------+
 
・年は 1980〜2107年 を 0〜127 で表す。WindowsのシステムAPIの 一部は 2099年までしかサポートしないという情報がある。
・月は 1〜12月 を 1〜12で表す。0〜11でないことに注意。
・日は 1〜31日 を 1〜31で表す。0〜30でないことに注意。
・時間は 0〜23時 を 0〜23で表す。
・分は 0〜59分 を 0〜59で表す。
・秒は 0〜58秒 を 0〜29で表す。秒の情報はビット数が足りない ため 最小単位は 1秒でなく 2秒である。
 -- revision history --
 $Log: MsdosDate.java,v $
 Revision 1.1  2002/12/05 00:00:00  dangan
 [maintenance]
     javadoc コメントのスペルミスを修正。
     ソース整備

 Revision 1.0  2002/07/24 00:00:00  dangan
 add to version control
 [bug fix]
     setTime() で ftimeの限界精度である2秒以上の精度で記録していた。
 [maintenance]
     タブの廃止
     ライセンス文の修正

 

バージョン:
$Revision: 1.1 $
作成者:
$Author: dangan $
関連項目:
直列化された形式

コンストラクタの概要
MsdosDate(Date date)
          date で示される時間を表す MsdosDate を構築する。
MsdosDate(int time)
          MS-DOS 形式の時間情報から 新しい MsdosDate を構築 する。
 
メソッドの概要
 Object clone()
          このオブジェクトのコピーを返す。
 int getMsdosTime()
          この MsdosDateが示す時間情報を MS-DOS 時間形式で得る。
 void setMsdosTime(int time)
          この MsdosDate に MS-DOS 時間形式の時間情報を設定する。
 void setTime(long time)
          この MsdosDate の示す時間を 1970年1月1日 00:00:00 GMTから time ミリ秒経過した時刻に設定する。
 void setYear(int year)
          推奨されていません。  
 
クラス java.util.Date から継承したメソッド
after, before, compareTo, compareTo, equals, getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getYear, hashCode, parse, setDate, setHours, setMinutes, setMonth, setSeconds, toGMTString, toLocaleString, toString, UTC
 
クラス java.lang.Object から継承したメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

MsdosDate

public MsdosDate(Date date)
date で示される時間を表す MsdosDate を構築する。
MS-DOS 形式の時間情報で表せない細かい精度の情報は 無視され、最小時間単位は java.util.Date の 1ミリ秒でなく MS-DOS 形式の時間情報 の最小単位である 2秒となる。

パラメータ:
date - 新しく構築される MsdosDate の基になる時間情報 を持つ Dateオブジェクト
例外:
IllegalArgumentException - date が MS-DOS時間形式で扱えない範囲の時間を 示していた場合

MsdosDate

public MsdosDate(int time)
MS-DOS 形式の時間情報から 新しい MsdosDate を構築 する。

パラメータ:
time - MS-DOS 形式の時間情報
メソッドの詳細

clone

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

戻り値:
このMsdosDateオブジェクトの複製

setYear

public void setYear(int year)
推奨されていません。  

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

パラメータ:
year - 1900を足すことで西暦を表すような 年の値
例外:
IllegalArgumentException - year が MS-DOS時間形式で扱えない範囲の時間を 示していた場合

setTime

public void setTime(long time)
この MsdosDate の示す時間を 1970年1月1日 00:00:00 GMTから time ミリ秒経過した時刻に設定する。
MS-DOS 形式の時間情報で表せない細かい精度の情報は 無視され、最小時間単位は java.util.Date の 1ミリ秒でなく MS-DOS 形式の時間情報 の最小単位である 2秒となる。

パラメータ:
time - 1970年1月1日 00:00:00GMT からの経過ミリ秒
例外:
IllegalArgumentException - time が MS-DOS時間形式で扱えない範囲の時間を 示していた場合

setMsdosTime

public void setMsdosTime(int time)
この MsdosDate に MS-DOS 時間形式の時間情報を設定する。

パラメータ:
time - MS-DOS 時間形式の時間情報

getMsdosTime

public int getMsdosTime()
この MsdosDateが示す時間情報を MS-DOS 時間形式で得る。

戻り値:
MS-DOS時間形式の値

LHA Library for Java

バグやドキュメントの誤りの報告は作者宛てにお願いします。
ドキュメント内に含まれる社名、製品名については一般に各社の商標または登録商標です。
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.