yerenzyy

java中计算两日期间隔天数的简单示例

package com.color.program;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CompareTime {

public static void main(String[] args){
String t1 = "2008-05-09";
String t2 = "2008-5-13";

try {
System.out.println(CompareTime.getBetweenDays(t1, t2));
} catch (ParseException e) {
e.printStackTrace();
}
}

/**
* 取得两个时间段的时间间隔
* return t2 与t1的间隔天数
* throws ParseException 如果输入的日期格式不是0000-00-00 格式抛出异常
*/
public static int getBetweenDays(String t1,String t2) throws ParseException{
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 = format.parse(t1);
Date d2 = format.parse(t2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
// 保证第二个时间一定大于第一个时间
if(c1.after(c2)){
c1 = c2;
c2.setTime(d1);
}
int betweenYears = c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
betweenDays = c2.get(Calendar.DAY_OF_YEAR)-c1.get(Calendar.DAY_OF_YEAR);
for(int i=0;i<betweenYears;i++){
c1.set(Calendar.YEAR,(c1.get(Calendar.YEAR)+1));
betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
}
return betweenDays;
}

}

posted on 2008-09-24 16:58 冶人 阅读(5670) 评论(9)  编辑  收藏

评论

# re: java中计算两日期间隔天数的简单示例 2008-11-03 10:17 JShare

VERYGOOD!  回复  更多评论   

# re: java中计算两日期间隔天数的简单示例 2008-11-06 21:46 11

如果我两个日期之间相差10000年,这个程序的工作量也太大了吧。  回复  更多评论   

# re: java中计算两日期间隔天数的简单示例[未登录] 2008-11-07 09:58 冶人

@11

你那是特殊情况,任何代码都不是万能的

我们只处理一般情况  回复  更多评论   

# re: java中计算两日期间隔天数的简单示例[未登录] 2009-01-07 15:23 TEST

如果出现润年
2011年12月1-2012年1月1,多加了一天  回复  更多评论   

# re: java中计算两日期间隔天数的简单示例[未登录] 2009-01-07 15:28 TEST

@TEST
Sorry,搞错,抱歉
  回复  更多评论   

# re: java中计算两日期间隔天数的简单示例 2010-09-17 10:09 act

你的算法不准且慢,试试这个
public static int getBetweenDays(String t1,String t2) throws ParseException{
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return new Long((format.parse(t1).getTime()-format.parse(t2).getTime())/(1000 * 60 * 60 * 24)).intValue();

}  回复  更多评论   

# re: java中计算两日期间隔天数的简单示例 2010-09-18 12:40 冶人

@act

算法是慢点 应该不会不准的吧
不过你那个方法的确简洁 先收藏了
(format.parse(t1).getTime()-format.parse(t2).getTime() 间隔一年的话,这个数据就非常大了 如果多年,会不会有异常?当然,我只是假设。没测试  回复  更多评论   

# re: java中计算两日期间隔天数的简单示例[未登录] 2011-09-21 09:11 aaa

2011-12-01 ----2012-01-31 不准确啊间隔多算了一天。  回复  更多评论   

# re: java中计算两日期间隔天数的简单示例 2013-05-20 19:41 twlkyao

如果不是同一个月的结果不正确。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜