Skip to content

Commit 7a8a5fb

Browse files
author
linzhijun
committed
修改
1 parent 19c538a commit 7a8a5fb

File tree

1 file changed

+23
-5
lines changed
  • java/toolgood.algorithm/src/main/java/toolgood/algorithm

1 file changed

+23
-5
lines changed

java/toolgood.algorithm/src/main/java/toolgood/algorithm/MyDate.java

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package toolgood.algorithm;
22

3+
import org.joda.time.DateTime;
4+
import org.joda.time.DateTimeZone;
5+
36
import java.math.BigDecimal;
47
import java.time.LocalDate;
58
import java.time.temporal.ChronoUnit;
69
import java.util.Date;
710
import java.util.regex.Matcher;
811
import java.util.regex.Pattern;
912

10-
import org.joda.time.DateTime;
11-
import org.joda.time.DateTimeZone;
12-
1313
public 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) {

0 commit comments

Comments
 (0)