Я хотел использовать оператор if else, но получил несколько ошибок. Вот мой код
pointChargeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm a");
Date date1 = null;
try {
date1 = simpleDateFormat.parse(timeResult.getText().toString());
} catch (ParseException e) {
e.printStackTrace();
}
Date date2 = null;
try {
date2 = simpleDateFormat.parse(timeResult2.getText().toString());
} catch (ParseException e) {
e.printStackTrace();
}
String diffResult= DateUtils.getRelativeTimeSpanString(date1.getTime(), date2.getTime(), DateUtils.MINUTE_IN_MILLIS).toString();
if (diffResult < 30){
int point = diffResult * 2;
pointChargeBtn.setText(point);
}
}
});
В вашем коде diffResult - это строка. Оператор '<' нельзя применить к строке.
поскольку diffResult является строкой, поэтому нельзя сравнивать с целым числом в операторе if. Кнопка для отображения времени. Формат: SimpleDateFormat и MINUTES_IN_MILLIS @Janvi Vyas.
мне нужно преобразовать diffResult из строки в целое число? @будут
@NorSakinah вы можете получить часы из diffResult следующим образом: diffResult.split ("") [0], чем преобразовать его в Integer, например: new Integer (diffResult.split ("") [0]). Теперь у вас есть часы как int и вы можете сравнить их, как вы это делаете выше
Ваша ошибка:
String diffResult= DateUtils.getRelativeTimeSpanString(date1.getTime(), date2.getTime(), DateUtils.MINUTE_IN_MILLIS).toString();
if (diffResult < 30){
int point = diffResult * 2;
pointChargeBtn.setText(point);
}
diffResult
- это String
, поэтому вы не можете сравнивать его с числом и не умножать.
РЕДАКТИРОВАТЬ
Исправить можно так:
// difference in milliseconds
// Using Math.abs is optional. It allows us to not care about which date is the latest.
int diffInMillis = Math.abs(date2.getTime() - date1.getTime());
// Calculates the time in minutes
int diffInMinutes = diffInMillis / (1000 * 60);
// if difference is less (strictly) than 30 minutes
if (diffInMinutes < 30){
// TODO: Do something
}
Как я могу это исправить?
Но вы знаете, что ваше приложение выйдет из строя, если возникнет ошибка синтаксического анализа? Вы должны проверить, не являются ли обе даты не null
, и сделать что-нибудь, если это так (например, отобразить сообщение об ошибке для пользователя), прежде чем пытаться вычислить разницу во времени.
сообщайте, с какими ошибками вы сталкиваетесь? и что пользователь может ввести? время или дату? какой формат?