если еще заявление для DateUtils - PullRequest
0 голосов
/ 01 мая 2018
  1. Так что до этого я уже получал разницу во времени между двумя разами.
  2. Теперь я хочу отобразить точку, которая будет взиматься за определенное время, например: в моем коде продолжительность времени называется diffResult, если diffResult меньше 30 минут, точка будет начислена умножена на 1 diffResult = 2, поэтому 2 * 1, точка будет заряжена 2.
  3. Я хотел использовать оператор 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);
            }
    
    
        }
    });
    

1 Ответ

0 голосов
/ 01 мая 2018

Ваша ошибка:

 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, поэтому вы не можете ни сравнить его с числом, ни умножить его

EDIT

Вы можете исправить это так:

// 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
}
...