我需要计算用户在EditText中输入的两个日期(两个日期也包括在内)之间的天数。我还需要检查这些天来的天气还是已经过去了。我该怎么做?
答案 0 :(得分:11)
SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
String inputString1 = "23 01 1997";
String inputString2 = "27 04 1997";
try {
Date date1 = myFormat.parse(inputString1);
Date date2 = myFormat.parse(inputString2);
long diff = date2.getTime() - date1.getTime();
System.out.println ("Days: " + TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS));
} catch (ParseException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
首先从两个编辑文本中获取日期到字符串
SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
String firstDate=editText1.getText().toString();
String secondDate=editText2.getText().toString();
之后将您的字符串转换为日期..
使用Java内置类TimeUnit可以更好地处理日期差异转换。它提供了一些实用方法:
Date startDate = myFormat.parse(firstDate); // initialize start date
Date endDate = myFormat.parse(secondDate); // initialize end date
long duration = endDate.getTime() - startDate.getTime();
long diffInSeconds = TimeUnit.MILLISECONDS.toSeconds(duration);
long diffInMinutes = TimeUnit.MILLISECONDS.toMinutes(duration);
long diffInHours = TimeUnit.MILLISECONDS.toHours(duration);