要求:两日期相减,如果不满一年,则返回0年,如果不满两年,则返回1年,。
例如:2005-12-10 减 2004-12-10,正好满1年,则返回一年,2005-12-10 减 2004-12-11,一年差一天,则返回0年。请问,用java如何实现,谢谢。
例如:2005-12-10 减 2004-12-10,正好满1年,则返回一年,2005-12-10 减 2004-12-11,一年差一天,则返回0年。请问,用java如何实现,谢谢。
解决方案 »
- Firefox 乱码,非一般的,大家有没遇到这种情况?
- frameset 重复显示的问题
- ?java.sql.SQLException: Column count doesn't match value count at row
- DispatchAction里面的Action执行不了!高手帮忙看一下!急。。。
- 大侠们快出手啊 eclipse+weblogic+sqlserver问题
- struts+hibernate+spring连接mysql问题
- 凡是帮忙的每人40分,问题很简单。关于下载
- ajaxForm提交一个含有input file的表单并返回一个页面怎么解决
- 生成一个对象,生命周期和application一样长?
- 恳请各位帮忙,一定给分
- about servlet
- 同时提交某个事务导致事务失败
B1-B2-B3A1<=A2 || ( (A1-A2=1) && B1<B2 ) || ( (A1-A2=1) && B1=B2 && C1<C2 )
return 0elseB1>B2 return A1-A2
B1=B2 return C1>=C2?A1-A2:A1-A2-1没检查,不知道全不全
年要是按天算,你没考虑2月
我考虑2月了,正因为有闰月,所以不知道如何处理,给出我写的一个算法,因为是365天,所以对闰月的情况不适用,想求一个更好的方法
private int getYearDiff(Date a, Date b) {
if ( a==null || b == null)
return 0;
cal.setTime(a);
long aDays = cal.get(Calendar.YEAR) * 365 + cal.get(Calendar.DAY_OF_YEAR);
cal.setTime(b);
long bDays = cal.get(Calendar.YEAR) * 365 + cal.get(Calendar.DAY_OF_YEAR);
return (int) ((aDays - bDays) / 365);
}
如果你按天,比如1996年2月29到2001年2月27是几年?
c1.set(年,月,日,0,0);Calendar c2 = Calendar.getInstance();
c2.set(年,月,日,0,0);long a = c1.getTime().getTime() - c2.getTime().getTime();
long b = l/(24*60*60*1000*365);我没测试过这个准不准,自己去测吧
c1.set(年,月,日,0,0);Calendar c2 = Calendar.getInstance();
c2.set(年,月,日,0,0);long a = c1.getTime().getTime() - c2.getTime().getTime();
long b = a/(24*60*60*1000*365);我没测试过这个准不准,自己去测吧