LHA Library for Java

jp.gr.java_conf.dangan.util
Class MsdosDate

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

public class MsdosDate
extends java.util.Date
implements java.lang.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]
     タブの廃止
     ライセンス文の修正

 

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

Constructor Summary
MsdosDate(java.util.Date date)
          date で示される時間を表す MsdosDate を構築する。
MS-DOS 形式の時間情報で表せない細かい精度の情報は 無視され、最小時間単位は java.util.Date の 1ミリ秒でなく MS-DOS 形式の時間情報 の最小単位である 2秒となる。
MsdosDate(int time)
          MS-DOS 形式の時間情報から 新しい MsdosDate を構築 する。
 
Method Summary
 java.lang.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 ミリ秒経過した時刻に設定する。
MS-DOS 形式の時間情報で表せない細かい精度の情報は 無視され、最小時間単位は java.util.Date の 1ミリ秒でなく MS-DOS 形式の時間情報 の最小単位である 2秒となる。
 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, setDate, setHours, setMinutes, setMonth, setSeconds, toGMTString, toLocaleString, toString, UTC
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MsdosDate

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

Parameters:
date - 新しく構築される MsdosDate の基になる時間情報 を持つ Dateオブジェクト
Throws:
java.lang.IllegalArgumentException - date が MS-DOS時間形式で扱えない範囲の時間を 示していた場合

MsdosDate

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

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

clone

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

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

setYear

public void setYear(int year)
Deprecated. 

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

Overrides:
setYear in class java.util.Date
Parameters:
year - 1900を足すことで西暦を表すような 年の値
Throws:
java.lang.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秒となる。

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

setMsdosTime

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

Parameters:
time - MS-DOS 時間形式の時間情報

getMsdosTime

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

Returns:
MS-DOS時間形式の値

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.