1
2
3
4
5
6
7
8
9
10
11 package de.jaret.util.date.iterator;
12
13 import java.text.DecimalFormat;
14 import java.text.NumberFormat;
15
16 import de.jaret.util.date.JaretDate;
17
18
19
20
21
22
23
24 public class MinuteIterator extends AbstractDateIterator implements DateIterator {
25
26 protected IIteratorFormatter _defaultFormatter = new IIteratorFormatter() {
27
28
29
30
31 public String getLabel(JaretDate date, Format format) {
32 if (format.equals(Format.SHORT)) {
33 return date.getMinutes() + "'";
34 } else if (format.equals(Format.MEDIUM)) {
35 return NF.format(date.getHours()) + ":" + NF.format(date.getMinutes());
36 } else {
37 return NF.format(date.getHours()) + ":" + NF.format(date.getMinutes()) + ":"
38 + NF.format(date.getSeconds());
39 }
40 }
41 };
42
43 private static final int DEFAULT_STEP = 30;
44
45
46 protected int _minuteStep = DEFAULT_STEP;
47
48
49 protected static final NumberFormat NF = new DecimalFormat();
50 static {
51 NF.setMaximumFractionDigits(0);
52 NF.setMinimumIntegerDigits(2);
53 }
54
55
56
57
58
59
60 public MinuteIterator(int minuteStep) {
61 _minuteStep = minuteStep;
62 }
63
64
65
66
67 protected void advanceDate(JaretDate date) {
68 date.advanceMinutes(_minuteStep);
69 }
70
71
72
73
74 public long getApproxStepMilliSeconds() {
75 return _minuteStep * 60 * 1000;
76 }
77
78
79
80
81 protected JaretDate correctStartDate(JaretDate date) {
82 date.setSeconds(0);
83 date.setMilliseconds(0);
84
85 int diff = date.getMinutes() % _minuteStep;
86 date.backMinutes(diff);
87
88 return date;
89 }
90
91
92
93
94 protected IIteratorFormatter getDefaultFormatter() {
95 return _defaultFormatter;
96 }
97
98 }