View Javadoc

1   /*
2    *  File: DayIterator.java 
3    *  Copyright (c) 2004-2007  Peter Kliem (Peter.Kliem@jaret.de)
4    *  A commercial license is available, see http://www.jaret.de.
5    *
6    * All rights reserved. This program and the accompanying materials
7    * are made available under the terms of the Common Public License v1.0
8    * which accompanies this distribution, and is available at
9    * http://www.eclipse.org/legal/cpl-v10.html
10   */
11  package de.jaret.util.date.iterator;
12  
13  import de.jaret.util.date.JaretDate;
14  
15  /**
16   * Implementation of the DateIterator for days.
17   * 
18   * @author kliem
19   * @version $Id: DayIterator.java 845 2009-02-22 18:28:44Z kliem $
20   */
21  public class DayIterator extends AbstractDateIterator implements DateIterator {
22      /** day step. */
23      protected int _days = 1;
24      
25      
26      /** default formatter. */
27      protected IIteratorFormatter _defaultFormatter = new IIteratorFormatter() {
28  
29          /**
30           * {@inheritDoc}
31           */
32          public String getLabel(JaretDate date, Format format) {
33              if (format.equals(Format.SHORT)) {
34                  return Integer.toString(date.getDay()) + ".";
35              } else if (format.equals(Format.MEDIUM)) {
36                  return Integer.toString(date.getDay()) + ".(" + date.getShortDayOfWeekString() + ")";
37              } else {
38                  return Integer.toString(date.getDay()) + ".(" + date.getDayOfWeekString() + ")";
39              }
40          }
41      };
42  
43      /**
44       * Constructs the iterator with a 1 day step.
45       */
46      public DayIterator() {
47          // defaults to 1
48      }
49      /**
50       * Constructs the iterator with a n day step.
51       * @param days number of days per step
52       */
53      public DayIterator(int days) {
54          _days = days;
55      }
56      
57      /**
58       * {@inheritDoc}
59       */
60      protected void advanceDate(JaretDate date) {
61          date.advanceDays(_days);
62      }
63  
64      /**
65       * {@inheritDoc}
66       */
67      public long getApproxStepMilliSeconds() {
68          return (long)_days* 24L * 60L * 60L * 1000L;
69      }
70  
71      /**
72       * {@inheritDoc}
73       */
74      protected JaretDate correctStartDate(JaretDate date) {
75          date.setTime(0, 0, 0);
76          return date;
77      }
78  
79      /**
80       * {@inheritDoc}
81       */
82      protected IIteratorFormatter getDefaultFormatter() {
83          return _defaultFormatter;
84      }
85  
86  }