我这怎么可能是复制的啊。。我只不过和你说,你给的条件完全不充足。
因为你的意思是满12个月就是一年,那么什么是满一个月呢?
是用天去刻画呢,还是用日期去刻画呢?举个最简单的例子,1月30号到2月28号,按照你的意思是没满一个月吧?那1月30号到3月1号是满一个月了吧?
假设不是闰年 很明显2月28号到3月1号是一天,那我问你1月29号到2月28号 算1个月吗?
所以我觉得你的满月条件很模糊 到底是天数到了 还是日期到了,如果是日期到了是不是还得判断小时是不是过了 分钟是不是过了 秒钟是不是过了??
然后我随便写了一个public static void main(String []args) throws ParseException{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = format.parse("2011-03-29 09:00:00");
Date d2 = format.parse("2012-02-29 09:59:59");
System.out.println(getYear(d1, d2));
System.out.println(getMonth(d1, d2));
}
public static int getYear(Date d1, Date d2) {
return getMonth(d1, d2) / 12;
}
public static int getMonth(Date d1, Date d2) {
int y = (d2.getYear()-d1.getYear());
int m = (d2.getMonth() - d1.getMonth());
int ym = y * 12 + m;
Date d3 = new Date(d1.getTime());
d3.setYear(d3.getYear() + y);
d3.setMonth(d3.getMonth() + m);
if (d3.getTime() > d2.getTime()) {
ym--;
}
return ym;
}