Do obliczania ilości dni korzystam z metody:
public static long daysBetween(Calendar startDate, Calendar endDate) {
Calendar date = (Calendar) startDate.clone();
long daysBetween = 0;
while (date.before(endDate)) {
date.add(Calendar.DAY_OF_MONTH, 1);
daysBetween++;
}
return daysBetween;
}
Metodę wykorzystuję do obliczania ilości iteracji w pętli:
http://4programmers.net/Pastebin/2126
(coyote wybucha po wklejeniu tego kodu tutaj, więc przekleiłem na pastebin - msm).
Problem polega na tym, że zaraz po uruchomieniu programu jakimś cudem wprowadzane są dane dla okresu między dataP i dataK-1, a kolejne wywałania kodu wprowadzają dane dla okresu dataP i dataK, czyli dla jednego dnia więcej.