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 HourIterator extends AbstractDateIterator implements DateIterator {
25
26
27 protected IIteratorFormatter _defaultFormatter = new IIteratorFormatter() {
28
29
30
31
32 public String getLabel(JaretDate date, Format format) {
33 if (format.equals(Format.SHORT)) {
34 return date.getHours() + "h";
35 } else if (format.equals(Format.MEDIUM)) {
36 return NF.format(date.getHours()) + ":" + NF.format(date.getMinutes());
37 } else {
38 return NF.format(date.getHours()) + ":" + NF.format(date.getMinutes());
39 }
40 }
41 };
42
43
44 private static final int DEFAULT_STEP = 12;
45
46
47 protected int _hourStep = DEFAULT_STEP;
48
49
50 protected static final NumberFormat NF = new DecimalFormat();
51 static {
52 NF.setMaximumFractionDigits(0);
53 NF.setMinimumIntegerDigits(2);
54 }
55
56
57
58
59
60
61 public HourIterator(int hourStep) {
62 _hourStep = hourStep;
63 }
64
65
66
67
68 protected void advanceDate(JaretDate date) {
69 date.advanceHours(_hourStep);
70 }
71
72
73
74
75 public long getApproxStepMilliSeconds() {
76 return _hourStep * 60 * 60 * 1000;
77 }
78
79
80
81
82 protected JaretDate correctStartDate(JaretDate date) {
83 date.setMinutes(0);
84 date.setSeconds(0);
85 date.setMilliseconds(0);
86
87 int diff = date.getHours() % _hourStep;
88 date.backHours(diff);
89
90 return date;
91 }
92
93
94
95
96 protected IIteratorFormatter getDefaultFormatter() {
97 return _defaultFormatter;
98 }
99
100 }