Java Calendar Between getDaysBetween(Calendar d1, Calendar d2)

Here you can find the source of getDaysBetween(Calendar d1, Calendar d2)

Description

Calculates the number of days between two calendar days in a manner which is independent of the Calendar type used.

License

Open Source License

Parameter

Parameter Description
d1 The first date.
d2 The second date.

Return

The number of days between the two dates. Zero is returned if the dates are the same, one if the dates are adjacent, etc. The order of the dates does not matter, the value returned is always >= 0. If Calendar types of d1 and d2 are different, the result may not be accurate.

Declaration

public static int getDaysBetween(Calendar d1, Calendar d2) 

Method Source Code

//package com.java2s;

import java.util.Calendar;

public class Main {
    /**/*from   w ww.  j a  va 2 s. c o m*/
     * Calculates the number of days between two calendar days in a manner which
     * is independent of the Calendar type used.
     * 
     * @param d1
     *            The first date.
     * @param d2
     *            The second date.
     * 
     * @return The number of days between the two dates. Zero is returned if the
     *         dates are the same, one if the dates are adjacent, etc. The order
     *         of the dates does not matter, the value returned is always >= 0.
     *         If Calendar types of d1 and d2 are different, the result may not
     *         be accurate.
     */
    public static int getDaysBetween(Calendar d1, Calendar d2) {
        // swap dates so that d1 is start and d2 is end
        if (d1.after(d2)) {
            Calendar swap = d1;
            d1 = d2;
            d2 = swap;
        }

        int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
        int y2 = d2.get(Calendar.YEAR);
        if (d1.get(Calendar.YEAR) != y2) {
            d1 = (Calendar) d1.clone();
            do {
                days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);
                d1.add(Calendar.YEAR, 1);
            } while (d1.get(Calendar.YEAR) != y2);
        }
        return days;
    }
}

Related

  1. daysBetween(final Calendar startDate, final Calendar endDate)
  2. daysBetweenCalendarDates(final Calendar firstDate, final Calendar secondDate)
  3. daysBetweenForDate(Calendar startDate, Calendar endDate)
  4. daysBetweenxX(Calendar start, Calendar end)
  5. getDaysBetween(Calendar d1, Calendar d2)
  6. getDaysBetween(Calendar firstDate, Calendar lastDate)
  7. getDaysBetween(Calendar start, Calendar end)
  8. getDaysBetween(Calendar startDate, Calendar endDate)
  9. getDaysBetween(final Calendar start, final Calendar end)