其實我陷入了小問題,但沒有得到任何合適的解決方案。我有相同的格式兩個日期現在我想差別之間,但格式會(年 - 月 - 日 - 小時 - 薄荷糖 - 秒)這裏是我的代碼月,日的差異
public static void getDifferent(Date startDate, Date endDate) {
//milliseconds
long different = endDate.getTime() - startDate.getTime();
System.out.println("startDate : " + startDate);
System.out.println("endDate : " + endDate);
System.out.println("different : " + different);
long secondsInMilli = 1000;
long minutesInMilli = secondsInMilli * 60;
long hoursInMilli = minutesInMilli * 60;
long daysInMilli = hoursInMilli * 24;
long monthInMili = daysInMilli * 30;
long elapsedMonths = different/monthInMili;
long elapsedDays = different/daysInMilli;
different = different % daysInMilli;
long elapsedHours = different/hoursInMilli;
different = different % hoursInMilli;
long elapsedMinutes = different/minutesInMilli;
different = different % minutesInMilli;
long elapsedSeconds = different/secondsInMilli;
Log.d("Difference", "startDate: " + startDate.toString() + " endDate: " + endDate + " Months : " + elapsedMonths + " Days :" + elapsedDays + " Hours :" +
elapsedHours + " Mint :" + elapsedMinutes + " Seconds :" + elapsedSeconds);
}
這是代碼不夠完善,由於這條線
long monthInMili = daysInMilli * 30;
所以請指導我。我很久沒有得到妥善的解決方案。
的情況下,開始日期假設= 2012年1月14日9時29分58秒和結束日期= 2011年1月5日09:29: 58。現在在這種情況下,我得到了一些很大的天價值?我想在0-30的範圍內。並希望額外的領域像12個月3天1小時1分鐘1秒我想這樣。 –
檢查更新的答案。 – rupinderjeet
我覺得你靠近我的答案,但不是完美的。當我把開始日期和結束日期的差異確切地說是1年,那麼你的功能會給我1年和12個月。我想要完美的1年零個月。 –