Java Date Difference dateDiff(Date date1, Date date2)

Here you can find the source of dateDiff(Date date1, Date date2)

Description

date Diff

License

Open Source License

Declaration

public static int dateDiff(Date date1, Date date2) 

Method Source Code

//package com.java2s;
/**//from w  w w  .j  a va 2s.co  m
 *  Este arquivo ? parte do Biblivre3.
 *  
 *  Biblivre3 ? um software livre; voc? pode redistribu?-lo e/ou 
 *  modific?-lo dentro dos termos da Licen?a P?blica Geral GNU como 
 *  publicada pela Funda??o do Software Livre (FSF); na vers?o 3 da 
 *  Licen?a, ou (caso queira) qualquer vers?o posterior.
 *  
 *  Este programa ? distribu?do na esperan?a de que possa ser  ?til, 
 *  mas SEM NENHUMA GARANTIA; nem mesmo a garantia impl?cita de
 *  MERCANTIBILIDADE OU ADEQUA??O PARA UM FIM PARTICULAR. Veja a
 *  Licen?a P?blica Geral GNU para maiores detalhes.
 *  
 *  Voc? deve ter recebido uma c?pia da Licen?a P?blica Geral GNU junto
 *  com este programa, Se n?o, veja em <http://www.gnu.org/licenses/>.
 * 
 *  @author Alberto Wagner <alberto@biblivre.org.br>
 *  @author Danniel Willian <danniel@biblivre.org.br>
 * 
 */

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class Main {
    public static int dateDiff(Date date1, Date date2) {
        int count = 0;
        int diff = 0;
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();

        cal1.setTime(date1);
        cal2.setTime(date2);

        while (cal1.get(Calendar.YEAR) != cal2.get(Calendar.YEAR)) {
            count = 365 * (cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR));
            diff += count;
            cal1.add(Calendar.DAY_OF_YEAR, count);
        }

        if (cal1.get(Calendar.DAY_OF_YEAR) != cal2.get(Calendar.DAY_OF_YEAR)) {
            count = cal2.get(Calendar.DAY_OF_YEAR) - cal1.get(Calendar.DAY_OF_YEAR);
            diff += count;
        }
        return diff;
    }

    public static Date add(final Date date, final Integer field, final Integer amount) {
        Calendar cal = new GregorianCalendar();
        cal.setTime(date);
        cal.add(field, amount);
        return cal.getTime();
    }
}

Related

  1. dateDiff(Date beginDate, Date endDate)
  2. dateDiff(Date d1, Date d2, int field)
  3. dateDiff(Date date1, Date date2)
  4. dateDiff(Date date1, Date date2)
  5. dateDiff(Date fromDate, Date toDate)
  6. DateDiff(Date startDate, Date endDate)
  7. dateDiff(final Date date1, final Date date2)