package com.brightgenerous.commons.delegate;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
interface DateDelegater {
boolean isSameDay(Date date1, Date date2);
boolean isSameDay(Calendar cal1, Calendar cal2);
boolean isSameInstant(Date date1, Date date2);
boolean isSameInstant(Calendar cal1, Calendar cal2);
boolean isSameLocalTime(Calendar cal1, Calendar cal2);
Date parseDate(String str, String... parsePatterns) throws ParseException;
Date parseDateStrictly(String str, String... parsePatterns) throws ParseException;
Date addYears(Date date, int amount);
Date addMonths(Date date, int amount);
Date addWeeks(Date date, int amount);
Date addDays(Date date, int amount);
Date addHours(Date date, int amount);
Date addMinutes(Date date, int amount);
Date addSeconds(Date date, int amount);
Date addMilliseconds(Date date, int amount);
Date setYears(Date date, int amount);
Date setMonths(Date date, int amount);
Date setDays(Date date, int amount);
Date setHours(Date date, int amount);
Date setMinutes(Date date, int amount);
Date truncate(Date date, int field);
Calendar truncate(Calendar date, int field);
long getFragmentInMilliseconds(Date date, int fragment);
long getFragmentInSeconds(Date date, int fragment);
long getFragmentInMinutes(Date date, int fragment);
long getFragmentInHours(Date date, int fragment);
long getFragmentInDays(Date date, int fragment);
long getFragmentInMilliseconds(Calendar calendar, int fragment);
long getFragmentInSeconds(Calendar calendar, int fragment);
long getFragmentInMinutes(Calendar calendar, int fragment);
long getFragmentInHours(Calendar calendar, int fragment);
long getFragmentInDays(Calendar calendar, int fragment);
boolean truncatedEquals(Calendar cal1, Calendar cal2, int field);
boolean truncatedEquals(Date date1, Date date2, int field);
int truncatedCompareTo(Calendar cal1, Calendar cal2, int field);
int truncatedCompareTo(Date date1, Date date2, int field);
}