private void applyDelta(Calendar fixPoint, int amount) throws ParseException { expectKeyword(join(seconds(), minutes(), hours(), days(), weeks(), months(), years())); if (in(seconds())) { fixPoint.add(Calendar.SECOND, amount); return; } if (in(minutes())) { fixPoint.add(Calendar.MINUTE, amount); return; } if (in(hours())) { fixPoint.add(Calendar.HOUR, amount); return; } if (in(days())) { fixPoint.add(Calendar.DAY_OF_MONTH, amount); return; } if (in(weeks())) { fixPoint.add(Calendar.WEEK_OF_YEAR, amount); return; } if (in(months())) { fixPoint.add(Calendar.MONTH, amount); return; } if (in(years())) { fixPoint.add(Calendar.YEAR, amount); } }