Here you can find the source of dateDiff(Date date1, Date date2)
public static int dateDiff(Date date1, Date date2)
//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(); } }