The problem is that you are not specifying the type of period in the period constructor, so it uses the default value of "years, months, weeks, days, hours, minutes, seconds, and millions." You see only 15 minutes because you are not asking for hours that will return -18.
If you need only days and minutes, you must indicate that:
PeriodType type = PeriodType.forFields(new DurationFieldType[] {
DurationFieldType.days(),
DurationFieldType.minutes()
});
Period period = new Period(currentDate, date, type);
Duration, " , " Period, (, , ..) . - .