/* LICENSE: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Copyright (C) 2004, GanttProject Development Team */ package biz.ganttproject.core.time.impl; import java.util.Calendar; import java.util.Date; import biz.ganttproject.core.time.CalendarFactory; import biz.ganttproject.core.time.DateFrameable; /** * Created by IntelliJ IDEA. * * @author bard */ public class FramerImpl implements DateFrameable { private final int myCalendarField; public FramerImpl(int calendarField) { myCalendarField = calendarField; } @Override public Date adjustRight(Date baseDate) { Calendar c = CalendarFactory.newCalendar(); c.setTime(baseDate); clearFields(c); c.add(myCalendarField, 1); return c.getTime(); } private void clearFields(Calendar c) { for (int i = myCalendarField + 1; i <= Calendar.MILLISECOND; i++) { c.clear(i); } } @Override public Date adjustLeft(Date baseDate) { Calendar c = CalendarFactory.newCalendar(); c.setTime(baseDate); clearFields(c); // Date beforeClear = c.getTime(); // if (beforeClear.compareTo(c.getTime())==0) { // c.add(Calendar.MILLISECOND, -1); // } return c.getTime(); } @Override public Date jumpLeft(Date baseDate) { Calendar c = CalendarFactory.newCalendar(); c.setTime(baseDate); c.add(myCalendarField, -1); return c.getTime(); } }