2016-06-03 4 views
1

Я видел почти похожие вопросы об этом, но моя привычка работать, как я хочу. Совсем нет.Рассчитать разницу во времени между двумя EditText

Так что я пытался рассчитать разницу во времени между двумя временными метками, которые я установил с помощью TimePicker, на два EditTexts.

Вот код, который я не получаю на работу:

public void calcTime() throws Exception{ 
    String startTime = startworkFrom.getText().toString(); 
    String endTime = startworkTo.getText().toString(); 

    DateFormat format = new SimpleDateFormat("hh:mm a"); 
    Date time_1 = format.parse(startTime); 
    Date time_2 = format.parse(endTime); 

    long timeDiff = time_2.getTime() - time_1.getTime(); 

    System.out.println("Time difference" + timeDiff); 
} 

Что отсутствует в коде?

ОБНОВЛЕНИЕ

Я нашел проблему, которая является эта строка:

DateFormat Формат = новый SimpleDateFormat ("чч: мм а");

Если я удалю 'a'. Также значение действительно высокое. Если я установил с 12:00 до 13:00, разница должна быть 1. Но я получаю здесь действительно огромную ценность. Я буду использовать

+0

Какой выходной сигнал? – Uday

+0

Что возвращает getTime? – seanAshmore

+0

@seanAshmore getTime возвращает время в миллисекундах. Может быть, не так оптимально – mogren3000

ответ

0

Единственная проблема сейчас, если я начну работать поздно ночью, а затем перестают работать утром я получит отрицательное значение, но я предполагаю, что есть исправление, что для другой темы ,

Это должно сделать это

String neg = "-"; 
    long timeDiff; 
    if(timeDiff.contains(neg)){ 
    timeDiff = time_1.getTime() - time_2.getTime(); } 
else{ timeDiff = 
    time_2.getTime() - time_1.getTime(); } 
    System.out.println("Time difference" + timeDiff); 
+0

Хорошо. Я также видел, что getHour, который я должен использовать, устарел, и это метод Calender, который рекомендуется использовать, я его изменю. Я думаю, – mogren3000

+0

У меня есть ** большая проблема **. Когда я вычисляю разницу во времени, я получаю часы правильно. Но когда минуты доходят до 60 минут, час должен добавить 1 час. Так что это не хорошо. – mogren3000

0

Решение отрицательных значений является использование библиотеки Math. Мне понравилось:

String a =""+Math.abs(diff/(60*60*1000)%24); 

 Смежные вопросы

  • Нет связанных вопросов^_^