package org.openslx.dozmod.gui.helper; import java.util.Calendar; import java.util.Date; import javax.swing.JSpinner; import org.apache.log4j.Logger; import org.jdatepicker.impl.JDatePickerImpl; public class DateTimeHelper { private static final Calendar calendar = Calendar.getInstance(); private final static Logger LOGGER = Logger.getLogger(DateTimeHelper.class); /** * Returns the Date composed of the given datePicker's date and the given * timeSpinner's time * * @param datePicker to extract the date from * @param timeSpinner to extract the time from * @return Date represented by datePicker's day and timeSpinner's time */ public static Date getDateFrom(JDatePickerImpl datePicker, JSpinner timeSpinner) { // start date from the DatePicker int years = datePicker.getModel().getYear(); int months = datePicker.getModel().getMonth(); int days = datePicker.getModel().getDay(); // start time from the Spinner Date time = (Date) timeSpinner.getValue(); calendar.setTime(time); int hours = calendar.get(Calendar.HOUR_OF_DAY); int minutes = calendar.get(Calendar.MINUTE); // build the time from the single values calendar.set(years, months, days, hours, minutes); Date date = calendar.getTime(); return date; } public static Date addDaysTo(Date start, int days) { calendar.setTime(start); calendar.add(Calendar.DAY_OF_MONTH, days); return calendar.getTime(); } /** * Calculate the number of days between dates * * @param start start date to use * @param end end date * @return Rounded number of days */ public static int calculatePeriodInDays(Date start, Date end) { if (end.before(start)) return 0; return Math.round((end.getTime() - start.getTime()) / 86400000f); } }