View Javadoc
1   package net.objectlab.kit.datecalc.jdk;
2   
3   import java.util.Calendar;
4   import java.util.Date;
5   
6   import net.objectlab.kit.datecalc.common.CurrencyDateCalculatorBuilder;
7   import net.objectlab.kit.datecalc.common.ccy.AbstractCurrencyDateCalculator;
8   
9   /**
10   * JDK Date implementation for currency date calculator.
11   * @author Benoit Xhenseval
12   * @since 1.4.0
13   */
14  public class DateCurrencyDateCalculator extends AbstractCurrencyDateCalculator<Date> {
15  
16      public DateCurrencyDateCalculator(final CurrencyDateCalculatorBuilder<Date> builder) {
17          super(builder);
18      }
19  
20      @Override
21      protected Date addMonths(final Date calc, final int unit) {
22          final Calendar cal = Calendar.getInstance();
23          cal.setTime(calc);
24          cal.add(Calendar.MONTH, unit);
25          return cal.getTime();
26      }
27  
28      @Override
29      protected Date calculateNextDay(final Date date) {
30          final Calendar cal = Calendar.getInstance();
31          cal.setTime(date);
32          cal.add(Calendar.DAY_OF_MONTH, 1);
33          return cal.getTime();
34      }
35  
36      @Override
37      protected int calendarWeekDay(final Date date) {
38          final Calendar cal = Calendar.getInstance();
39          cal.setTime(date);
40          return cal.get(Calendar.DAY_OF_WEEK);
41      }
42  
43      @Override
44      protected Date max(final Date d1, final Date d2) {
45          return d1.compareTo(d2) > 0 ? d1 : d2;
46      }
47  
48  }