【发布时间】:2019-02-05 11:59:27
【问题描述】:
我正在开发日期计算应用程序,例如 Windows 10 计算器 您在哪里选择开始和结束日期 并计算年月日数
public String differenceInDates(){
Date start_date = convertStringToDate("2017-04-24");
Date end_date = convertStringToDate("2018-07-24");
long different = this.end_date.getTime() - this.start_date.getTime();
long millisInSeconds = 1000;
long millisInMinutes = millisInSeconds * 60;
long millisInHours = millisInMinutes * 60;
long millisInDay = millisInHours *24;
long elapsedDays = different / millisInDay;
different = different % millisInDay;
long elapsedHours = different / millisInHours;
different = different % millisInHours;
long elapsedMinutes = different / millisInMinutes;
different = different % millisInMinutes;
long elapsedSeconds = different / millisInSeconds;
if (elapsedHours == 0){
return String.valueOf("days"+elapsedDays+":"+":"+elapsedMinutes+":"+elapsedSeconds);
}
if (elapsedMinutes == 0){
return String.valueOf("days"+elapsedDays+":"+":"+elapsedHours+":"+elapsedSeconds);
}
if (elapsedHours == 0 && elapsedMinutes == 0){
return String.valueOf("days"+elapsedDays);
}
return String.valueOf("days"+elapsedDays+":"+" Hours"+elapsedHours+":"+" Minutes"+elapsedMinutes+":"+elapsedSeconds);
}
private Date convertStringToDate(String strDate) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = simpleDateFormat.parse(strDate);
return date;
}
我想要这样的答案
1 年 3 个月
【问题讨论】:
-
@fantaghirocco 不太一样。这个问题是关于年-月-日尺度的,而那个问题是关于时-分-秒尺度的。不同的问题有不同的解决方案。
-
仅供参考,非常麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 中内置的 java.time 类所取代,之后。见Tutorial by Oracle。
标签: java