Here you can find the source of dayBetweenTwoDates(Date beginDate, Date endDate)
public static int dayBetweenTwoDates(Date beginDate, Date endDate)
//package com.java2s; /**//from w w w. j a v a2 s .c om * Copyright 1996-2013 Founder International Co.,Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * @author kenshin */ import java.util.Calendar; import java.util.Date; public class Main { public static int dayBetweenTwoDates(Date beginDate, Date endDate) { int days; int pnMark = 1; if (endDate != null && beginDate != null) { Calendar bCalendar = Calendar.getInstance(); Calendar eCalendar = Calendar.getInstance(); if (beginDate.after(endDate)) { pnMark = -1; bCalendar.setTime(endDate); eCalendar.setTime(beginDate); } else { bCalendar.setTime(beginDate); eCalendar.setTime(endDate); } int dayBegin = bCalendar.get(Calendar.DAY_OF_YEAR); int dayEnd = eCalendar.get(Calendar.DAY_OF_YEAR); days = dayEnd - dayBegin; int endYear = eCalendar.get(Calendar.YEAR); if (bCalendar.get(Calendar.YEAR) != endYear) { bCalendar = (Calendar) bCalendar.clone(); } while (bCalendar.get(Calendar.YEAR) != endYear) { days += bCalendar.getActualMaximum(Calendar.DAY_OF_YEAR); bCalendar.add(Calendar.YEAR, 1); } } else days = 0; return days * pnMark; } }