I'm trying to count the days between two dates but I can't get a right result. I did the same that someone described to me.
My result should be an int or long. For this example I would expext 11 but 10 is also fine.
That's the code:
String startDate = "2018-03-25";
String endDate = "2018-04-05";
Date startDate1 = stringToDate(startDate);
Date endDate1 = stringToDate(endDate);
long ab = daysBetween(startDate1, endDate1);
String ab1 = String.valueOf(ab);
And that's the methods:
public static long daysBetween(Date startDate, Date endDate) {
    Calendar sDate = getDatePart(startDate);
    Calendar eDate = getDatePart(endDate);
    long daysBetween = 0;
    while (sDate.before(eDate)) {
        sDate.add(Calendar.DAY_OF_MONTH, 1);
        daysBetween++;
    }
    return daysBetween;
}
public Date stringToDate(String stringDatum) {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    try {
        Date date = format.parse(stringDatum);
        return date;
    }
    catch (ParseException e) {
        e.printStackTrace();
    }
    return null;
}
public static Calendar getDatePart(Date date){
    Calendar cal = Calendar.getInstance();       // get calendar instance
    cal.setTime(date);
    cal.set(Calendar.HOUR_OF_DAY, 0);            // set hour to midnight
    cal.set(Calendar.MINUTE, 0);                 // set minute in hour
    cal.set(Calendar.SECOND, 0);                 // set second in minute
    cal.set(Calendar.MILLISECOND, 0);            // set millisecond in second
    return cal;                                   // return the date part
}
 
     
    