您的位置:首页 > 编程语言 > Java开发

Java日期差计算天数

2016-04-15 18:08 351 查看
package action;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;

public class Test {

/**

* 日期差计算天数

* @param date1

* @param date2

* @return

*/

public static int differentDays(Date date1, Date date2) {

Calendar cal1 = Calendar.getInstance();

cal1.setTime(date1);

Calendar cal2 = Calendar.getInstance();

cal2.setTime(date2);

//获得这一天在是这一年的第多少天

int day1 = cal1.get(Calendar.DAY_OF_YEAR);

int day2 = cal2.get(Calendar.DAY_OF_YEAR);

// 获取年

int year1 = cal1.get(Calendar.YEAR);

int year2 = cal2.get(Calendar.YEAR);

if (year1 != year2) // 不同一年

{

int timeDistance = 0;

for (int i = year1; i < year2; i++) {

if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)

{

timeDistance += 366; //闰年

} else

{

timeDistance += 365; //不是闰年

}

}

return timeDistance + (day2 - day1);

} else {

System.out.println("判断day2 - day1 : " + (day2 - day1));

return day2 - day1; // 同年

}

}

/**

* 通过时间秒毫秒数判断两个时间的间隔

* @param date1

* @param date2

* @return

*/

public static int differentDaysByMillisecond(Date date1, Date date2) {

int days = (int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));

return days;

}

public static void main(String[] args) throws java.text.ParseException {

String dateStr = "2015-04-01";

String dateStr2 = "2015-04-10";

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");

try {

Date date2 = format.parse(dateStr2);

Date date = format.parse(dateStr);

System.out.println("两个日期的差距:" + differentDays(date, date2));

System.out.println("两个日期的差距通过秒毫秒数判断:" + differentDaysByMillisecond(date, date2));

} catch (ParseException e) {

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: