實現很簡單,二者時間進行比較。。。具體看下面代碼!java
package com.text; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Text1 { /** * TODO(description of this method) * * @param args * @author c99999999 kevin 2016年4月25日 下午6:57:24 * @since v1.0 */ public static void main(String[] args) { SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd"); Date d = null; try { d = df1.parse("2015-1-26"); } catch(ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } Calendar foretime = Calendar.getInstance(); foretime.setTime(d); Calendar nowCalendar = Calendar.getInstance(); int day = nowCalendar.get(Calendar.DAY_OF_MONTH) - foretime.get(Calendar.DAY_OF_MONTH); int month = nowCalendar.get(Calendar.MONTH) - foretime.get(Calendar.MONTH); int year = nowCalendar.get(Calendar.YEAR) - foretime.get(Calendar.YEAR); // 按照減法原理,先day相減,不夠向month借;而後month相減,不夠向year借;最後year相減。 if(day < 0) { month -= 1; nowCalendar.add(Calendar.MONTH, -1);// 獲得上一個月,用來獲得上個月的天數。 day = day + nowCalendar.getActualMaximum(Calendar.DAY_OF_MONTH); } if(month < 0) { month = (month + 12) % 12; year--; } System.out.println("結果:" + year + "年" + month + "月" + day + "天"); for(int i = 0; i < month; i++) { nowCalendar.add(Calendar.MONTH, -1);// 獲得上一個月,用來獲得上個月的天數。 day = day + nowCalendar.getActualMaximum(Calendar.DAY_OF_MONTH); } System.out.println("過去時間與如今有:" + year + "年" + "" + day + "天"); } }
結果:1年3月0天
過去時間與如今有:1年91天this