@@ -72,7 +72,8 @@ public MyDate(BigDecimal num) {
7272 BigDecimal d = num .subtract (new BigDecimal (days ));
7373 Hour = d .multiply (new BigDecimal (24 )).intValue ();
7474 Minute = d .multiply (new BigDecimal (24 )).subtract (new BigDecimal (Hour )).multiply (new BigDecimal (60 )).intValue ();
75- Second = d .multiply (new BigDecimal (24 )).subtract (new BigDecimal (Hour )).multiply (new BigDecimal (60 )).subtract (new BigDecimal (Minute )).multiply (new BigDecimal (60 )).intValue ();
75+ Second = d .multiply (new BigDecimal (24 )).subtract (new BigDecimal (Hour )).multiply (new BigDecimal (60 ))
76+ .subtract (new BigDecimal (Minute )).multiply (new BigDecimal (60 )).intValue ();
7677 // 防止秒数出错
7778 if (Second == 60 ) {
7879 Second = 0 ;
@@ -200,6 +201,7 @@ public String toString() {
200201 stringBuffer .append ("0" );
201202 }
202203 stringBuffer .append (Minute );
204+ stringBuffer .append (":" );
203205 if (Second < 10 ) {
204206 stringBuffer .append ("0" );
205207 }
@@ -218,6 +220,7 @@ public String toString() {
218220 stringBuffer .append ("0" );
219221 }
220222 stringBuffer .append (Minute );
223+ stringBuffer .append (":" );
221224 if (Second < 10 ) {
222225 stringBuffer .append ("0" );
223226 }
@@ -298,11 +301,37 @@ public BigDecimal ToNumber() {
298301 }
299302
300303 public MyDate ADD (MyDate num ) {
301- return new MyDate (this .ToNumber ().add (num .ToNumber ()));
304+ DateTime dt = this .ToDateTime ();
305+ if (num .Year != null ) {
306+ dt = dt .plusYears (num .Year );
307+ }
308+ if (num .Month != null ) {
309+ dt = dt .plusMonths (num .Month );
310+ }
311+ if (num .Day != null ) {
312+ dt = dt .plusDays (num .Day );
313+ }
314+ dt = dt .plusHours (num .Hour );
315+ dt = dt .plusMinutes (num .Minute );
316+ dt = dt .plusSeconds (num .Second );
317+ return new MyDate (dt );
302318 }
303319
304320 public MyDate SUB (MyDate num ) {
305- return new MyDate (this .ToNumber ().subtract (num .ToNumber ()));
321+ DateTime dt = this .ToDateTime ();
322+ if (num .Year != null ) {
323+ dt = dt .plusYears (-num .Year );
324+ }
325+ if (num .Month != null ) {
326+ dt = dt .plusMonths (-num .Month );
327+ }
328+ if (num .Day != null ) {
329+ dt = dt .plusDays (-num .Day );
330+ }
331+ dt = dt .plusHours (-num .Hour );
332+ dt = dt .plusMinutes (-num .Minute );
333+ dt = dt .plusSeconds (-num .Second );
334+ return new MyDate (dt );
306335 }
307336
308337 public MyDate ADD (BigDecimal num ) {
@@ -321,5 +350,4 @@ public MyDate DIV(BigDecimal num) {
321350 return new MyDate (this .ToNumber ().divide (num , MathContext .DECIMAL32 ));
322351 }
323352
324-
325353}
0 commit comments