--- a/jp/gr/java_conf/dangan/util/MsdosDate.java
+++ a/jp/gr/java_conf/dangan/util/MsdosDate.java
@@ -85,7 +85,6 @@
 public class MsdosDate extends Date
                        implements Cloneable {
 
-
     //------------------------------------------------------------------
     //  constructor
     //------------------------------------------------------------------
@@ -117,12 +116,13 @@
      * @param time MS-DOS 形式の時間情報
      */
     public MsdosDate( int time ){
-        super( ( ( time >> 25 ) & 0x7F ) + 80,
-               ( ( time >> 21 ) & 0x0F ) - 1,
-               ( time >> 16 ) & 0x1F,
-               ( time >> 11 ) & 0x1F,
-               ( time >> 5 )  & 0x3F,
-               ( time << 1 )  & 0x3F );                                         //deprecated
+        super( (new java.util.GregorianCalendar(
+	     ((time >> 25 ) & 0x7F ) + 80 + 1900,
+	     ((time >> 21 ) & 0x0F ) - 1,
+	     ( time >> 16 ) & 0x1F,
+	     ( time >> 11 ) & 0x1F,
+	     ( time >> 5 )  & 0x3F,
+	     ( time << 1 )  & 0x3F )).getTime().getTime() );                                         //deprecated
 
         this.checkRange();
     }
@@ -187,7 +187,10 @@
      *             示していた場合
      */
     public void setTime( long time ){
-        int year = ( new Date( time ) ).getYear();
+        int year = /*( new Date( time ) ).getYear()*/ 0;
+	java.util.GregorianCalendar c = new java.util.GregorianCalendar();
+	c.setTime(new Date(time));
+	year = c.get(java.util.Calendar.YEAR) - 1900;
         if( year < 80 || 207 < year ){
             throw new IllegalArgumentException( "out of MS-DOS time format range." );
         }else{
@@ -210,12 +213,12 @@
      * @param time MS-DOS 時間形式の時間情報
      */
     public void setMsdosTime( int time ){
-        Date date = new Date( ( ( time >> 25 ) & 0x7F ) + 80,
+        Date date = new java.util.GregorianCalendar( ( ( time >> 25 ) & 0x7F ) + 80 + 1900,
                               ( ( time >> 21 ) & 0x0F ) - 1,
                               ( time >> 16 ) & 0x1F,
                               ( time >> 11 ) & 0x1F,
                               ( time >> 5 )  & 0x3F,
-                              ( time << 1 )  & 0x3F );                          //deprecated
+                              ( time << 1 )  & 0x3F ).getTime();                          //deprecated
 
         this.setTime( date.getTime() );
     }
@@ -226,12 +229,14 @@
      * @return MS-DOS時間形式の値
      */
     public int getMsdosTime(){
-        return ( ( super.getYear() - 80 ) << 25 )                               //deprecated
-               | ( ( super.getMonth() + 1 ) << 21 )                             //deprecated
-               | ( super.getDate()    << 16 )                                   //deprecated
-               | ( super.getHours()   << 11 )                                   //deprecated
-               | ( super.getMinutes() <<  5 )                                   //deprecated
-               | ( super.getSeconds() >>  1 );                                  //deprecated
+	java.util.GregorianCalendar c = new java.util.GregorianCalendar();
+	c.setTime(this);
+        return ( ( c.get(java.util.Calendar.YEAR)-1900 - 80 ) << 25 )                               //deprecated
+               | ( ( c.get(java.util.Calendar.MONTH) + 1 ) << 21 )                             //deprecated
+               | ( c.get(java.util.Calendar.DAY_OF_MONTH)    << 16 )                                   //deprecated
+               | ( c.get(java.util.Calendar.HOUR_OF_DAY)   << 11 )                                   //deprecated
+               | ( c.get(java.util.Calendar.MINUTE) <<  5 )                                   //deprecated
+               | ( c.get(java.util.Calendar.SECOND) >>  1 );                                  //deprecated
     }
 
 
@@ -249,7 +254,10 @@
      *             範囲の時間を示していた場合
      */
     private void checkRange(){
-        int year = this.getYear();
+        int year = /*this.getYear()*/ 0;
+	java.util.GregorianCalendar c = new java.util.GregorianCalendar();
+	c.setTime(this);
+	year = c.get(java.util.Calendar.YEAR) - 1900;
         if( year < 80 || 207 < year )
             throw new IllegalArgumentException( "out of MS-DOS time format range." );
     }
