File tree Expand file tree Collapse file tree 1 file changed +23
-5
lines changed
java/toolgood.algorithm/src/main/java/toolgood/algorithm Expand file tree Collapse file tree 1 file changed +23
-5
lines changed Original file line number Diff line number Diff line change 11package toolgood .algorithm ;
22
3+ import org .joda .time .DateTime ;
4+ import org .joda .time .DateTimeZone ;
5+
36import java .math .BigDecimal ;
47import java .time .LocalDate ;
58import java .time .temporal .ChronoUnit ;
69import java .util .Date ;
710import java .util .regex .Matcher ;
811import java .util .regex .Pattern ;
912
10- import org .joda .time .DateTime ;
11- import org .joda .time .DateTimeZone ;
12-
1313public class MyDate {
1414 public Integer Year ;
1515 public Integer Month ;
@@ -70,7 +70,16 @@ public MyDate(BigDecimal num) {
7070 BigDecimal d = num .subtract (new BigDecimal (days ));
7171 Hour = d .multiply (new BigDecimal (24 )).intValue ();
7272 Minute = d .multiply (new BigDecimal (24 )).subtract (new BigDecimal (Hour )).multiply (new BigDecimal (60 )).intValue ();
73- Second = d .multiply (new BigDecimal (24 )).subtract (new BigDecimal (Hour )).multiply (new BigDecimal (60 )).subtract (new BigDecimal (Minute )).multiply (new BigDecimal (60 )).intValue ();
73+ Second = d .multiply (new BigDecimal (24 )).subtract (new BigDecimal (Hour )).multiply (new BigDecimal (60 )).subtract (new BigDecimal (Minute )).multiply (new BigDecimal (60 )).intValue ();
74+ // 防止秒数出错
75+ if (Second == 60 ) {
76+ Second = 0 ;
77+ Minute = Minute + 1 ;
78+ if (Minute == 60 ) {
79+ Minute = 0 ;
80+ Hour = Hour + 1 ;
81+ }
82+ }
7483 }
7584
7685 public MyDate (double num ) {
@@ -87,7 +96,16 @@ public MyDate(double num) {
8796 double d = num - days ;
8897 Hour = (int ) (d * 24 );
8998 Minute = (int ) ((d * 24 - Hour ) * 60.0 );
90- Second = (int ) (((d * 24 - Hour ) * 60.0 - Minute ) * 60.0 );
99+ Second = (int ) Math .round (((d * 24 - Hour ) * 60.0 - Minute ) * 60.0 );
100+ // 防止秒数出错
101+ if (Second == 60 ) {
102+ Second = 0 ;
103+ Minute = Minute + 1 ;
104+ if (Minute == 60 ) {
105+ Minute = 0 ;
106+ Hour = Hour + 1 ;
107+ }
108+ }
91109 }
92110
93111 public static MyDate parse (String txt ) {
You can’t perform that action at this time.
0 commit comments