code: public Date add(Date date) {
  		Calendar c = Calendar.getInstance();
  		c.setTime(date);
  
  		if (weeks != null) {
  			int weeks = this.weeks * (prior ? -1 : 1);
  			c.add(Calendar.DATE, weeks * 7);
  		}
  		if (days != null) {
  			int days = this.days * (prior ? -1 : 1);
  			c.add(Calendar.DATE, days);
  		}
  		if (hours != null) {
  			int hours = this.hours * (prior ? -1 : 1);
  			c.add(Calendar.HOUR_OF_DAY, hours);
  		}
  		if (minutes != null) {
  			int minutes = this.minutes * (prior ? -1 : 1);
  			c.add(Calendar.MINUTE, minutes);
  		}
  		if (seconds != null) {
  			int seconds = this.seconds * (prior ? -1 : 1);
  			c.add(Calendar.SECOND, seconds);
  		}
  
  		return c.getTime();
  	}
docs: Adds this duration value to a {@link Date} object.
  @param date the date to add to
  @return the new date value