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
11
12
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 }