Normand Briere
2019-02-22 611518a0ff65fd05e517d44adbcec639570b86eb
timeflow/data/time/RoughTime.java
....@@ -3,127 +3,148 @@
33 import java.util.Calendar;
44 import java.util.Date;
55
6
-public class RoughTime implements Comparable {
6
+public class RoughTime implements Comparable
7
+{
78
8
- public static final long UNKNOWN=Long.MIN_VALUE;
9
- private TimeUnit units;
10
- private long time;
11
-
12
- public RoughTime(TimeUnit units)
13
- {
14
- time=UNKNOWN;
15
- this.units=units;
16
- }
17
-
18
- public RoughTime(long time, TimeUnit units)
19
- {
20
- this.time=time;
21
- this.units=units;
22
- }
23
-
24
- public boolean isDefined()
25
- {
26
- return time!=UNKNOWN;
27
- }
28
-
29
- public long getTime()
30
- {
31
- return time;
32
- }
33
-
34
- public void setTime(long time)
35
- {
36
- this.time=time;
37
- }
38
-
39
- public Date toDate()
40
- {
41
- return new Date(time);
42
- }
43
-
44
- public boolean after(RoughTime t)
45
- {
46
- return t.time<time;
47
- }
48
-
49
- public boolean before(RoughTime t)
50
- {
51
- return t.time>time;
52
- }
53
-
54
- public RoughTime plus(int numUnits)
55
- {
56
- return plus(units, numUnits);
57
- }
58
-
59
- public RoughTime plus(TimeUnit unit, int times)
60
- {
61
- RoughTime r=copy();
62
- unit.addTo(r,times);
63
- return r;
64
- }
65
-
66
- public String toString()
67
- {
68
- if (isKnown())
69
- return new Date(time).toString();
70
- return "unknown";
71
- }
72
-
73
- public boolean isKnown()
74
- {
75
- return time!=UNKNOWN;
76
- }
77
-
78
- public boolean equals(Object o)
79
- {
80
- if (!(o instanceof RoughTime))
81
- return false;
82
- RoughTime t=(RoughTime)o;
83
- return t.units==units && t.time==time;
84
- }
85
-
86
- public RoughTime copy()
87
- {
88
- RoughTime t=new RoughTime(time, units);
89
- return t;
90
- }
91
-
92
- public void setUnits(TimeUnit units)
93
- {
94
- this.units=units;
95
- }
9
+ public static final long UNKNOWN = Long.MIN_VALUE;
10
+ private TimeUnit units;
11
+ private long time;
9612
97
- public TimeUnit getUnits() {
98
- return units;
99
- }
100
-
101
- public String format()
102
- {
103
- //return units.formatFull(time);
104
- return TimeUnit.SECOND.formatFull(time);
105
- }
106
-
107
- public static int compare(RoughTime t1, RoughTime t2)
108
- {
109
- if (t1==t2)
110
- return 0;
111
- if (t1==null)
112
- return -1;
113
- if (t2==null)
114
- return 1;
115
- long dt= t1.time-t2.time;
116
- if (dt==0)
117
- return 0;
118
- if (dt>0)
119
- return 1;
120
- return -1;
121
- }
13
+// public RoughTime(TimeUnit units)
14
+// {
15
+// time=UNKNOWN;
16
+// this.units=units;
17
+// }
18
+ public RoughTime(long time, TimeUnit units)
19
+ {
20
+ this.time = time;
21
+ this.units = units;
22
+ }
12223
123
- @Override
124
- public int compareTo(Object o) {
125
- return compare(this, (RoughTime)o);
126
- }
24
+ public boolean isDefined()
25
+ {
26
+ return time != UNKNOWN;
27
+ }
12728
29
+ public long getTime()
30
+ {
31
+ return time;
32
+ }
12833
34
+ public void setTime(long time)
35
+ {
36
+ this.time = time;
37
+ }
38
+
39
+ public Date toDate()
40
+ {
41
+ return new Date(time);
42
+ }
43
+
44
+ public boolean after(RoughTime t)
45
+ {
46
+ return t.time < time;
47
+ }
48
+
49
+ public boolean before(RoughTime t)
50
+ {
51
+ return t.time > time;
52
+ }
53
+
54
+ public RoughTime plus(int numUnits)
55
+ {
56
+ return plus(units, numUnits);
57
+ }
58
+
59
+ public RoughTime plus(TimeUnit unit, int times)
60
+ {
61
+ RoughTime r = copy();
62
+ unit.addTo(r, times);
63
+ return r;
64
+ }
65
+
66
+ public String toString()
67
+ {
68
+ if (isKnown())
69
+ {
70
+ return new Date(time).toString();
71
+ }
72
+ return "unknown";
73
+ }
74
+
75
+ public boolean isKnown()
76
+ {
77
+ return time != UNKNOWN;
78
+ }
79
+
80
+ public boolean equals(Object o)
81
+ {
82
+ if (!(o instanceof RoughTime))
83
+ {
84
+ return false;
85
+ }
86
+ RoughTime t = (RoughTime) o;
87
+ return t.units == units && t.time == time;
88
+ }
89
+
90
+ public RoughTime copy()
91
+ {
92
+ RoughTime t = new RoughTime(time, units);
93
+ return t;
94
+ }
95
+
96
+ public void setUnits(TimeUnit units)
97
+ {
98
+ this.units = units;
99
+ }
100
+
101
+ public TimeUnit getUnits()
102
+ {
103
+ return units;
104
+ }
105
+
106
+ public String format()
107
+ {
108
+ //return units.formatFull(time);
109
+ String format = TimeUnit.REALTIME.formatFull(time);
110
+
111
+ if (format.equals("00:00:00:00"))
112
+ {
113
+ format = TimeUnit.DAY.formatFull(time);
114
+ }
115
+
116
+ return format;
117
+ }
118
+
119
+ public static int compare(RoughTime t1, RoughTime t2)
120
+ {
121
+ if (t1 == t2)
122
+ {
123
+ return 0;
124
+ }
125
+ if (t1 == null)
126
+ {
127
+ return -1;
128
+ }
129
+ if (t2 == null)
130
+ {
131
+ return 1;
132
+ }
133
+ long dt = t1.time - t2.time;
134
+ if (dt == 0)
135
+ {
136
+ return 0;
137
+ }
138
+ if (dt > 0)
139
+ {
140
+ return 1;
141
+ }
142
+ return -1;
143
+ }
144
+
145
+ @Override
146
+ public int compareTo(Object o)
147
+ {
148
+ return compare(this, (RoughTime) o);
149
+ }
129150 }