public boolean isDateInRange(Date date) {
		assert beginDate != null;

		if (date == null) {
			return false;
		}

		final Date roundedBeginDate = DateUtils
				.round(beginDate, precision);

		if (endDate != null) {
			Date roundedEndDate = DateUtils.round(endDate, precision);

			Date roundedDate = DateUtils.round(date, precision);
			
			if (date.before(roundedEndDate) 
					&& date.after(roundedBeginDate)) {
				return true;
			}
			
			if (roundedDate.equals(roundedBeginDate) || 
					roundedDate.equals(roundedEndDate)) {
				return true;
			}
		

		} else {
			final Date truncatedDate = DateUtils.round(date, precision);
			if (roundedBeginDate.compareTo(truncatedDate) == 0) {
				return true;
			}
		}

		return false;

	}