2012-03-23 2 views
0

Я реализую что-то, что отображает ETA, и мне нужна помощь в правильном отображении.Расчетное время прибытия

Пример

//calculates the ETA in hours 
var eta = CalculateEta(currentLocation, destination); //returns eq. 0,2169067 

Как можно отобразить это в течение нескольких минут, и если ЭТА greather затем 1 в часах и минутах?

Пример

Если мое возвращенное значение ETA равно 0,2169067 Я хотел бы, чтобы отобразить это следующим образом:

"Estimated Time Of Arrival is in 21 minutes" 

Если мой ETA имеет значение 1,502235 Я хотел бы показать:

"Estimated Time Of Arrival is in 1 hour and 50 minutes" 

Надеюсь, что это делает его более понятным.

+0

что именно вы хотите, дисплей (печать)? – user717572

+0

Ваш вопрос не очень ясен, не так ли, что у вас возникли проблемы с преобразованием возвращаемого значения CalculateEta() в часы, минуты и секунды? – triggs

+0

Да, я обновлю свой вопрос на примере –

ответ

1
private static String viaDate(float eta) { 
    DateFormat format = new SimpleDateFormat("H 'hours,' m 'minutes,' s 'seconds,' S 'ms'", Locale.US); 
    // convert to milliseconds, for some reason substract one hour, 0f results in 1:00 
    Date date = new Date((long) (eta * ONE_HOUR) - ONE_HOUR); 
    return format.format(date); 
} 

private static String manual(float eta) { 
    int hour = (int) eta; 
    eta = (eta - hour) * 60; 
    int minutes = (int) eta; 
    eta = (eta - minutes) * 60; 
    int seconds = (int) eta; 
    eta = (eta - seconds) * 1000; 
    int ms = (int) eta; 
    return String.format("%d hours, %d minutes, %d seconds, %d ms", hour, minutes, seconds, ms); 
} 

Оба приведут к чему-то вроде

"0 hours, 14 minutes, 2 seconds, 400 ms" 

Если вы не хотите, чтобы отобразить часы только тогда, когда> 0 и отображение «часов» вместо «час», когда> 1, то взять инструкцию version add some if (hour > 0) { /* add "x hours" */ } logic

Это может работать с SimpleDateFormat, но я был слишком ленив, чтобы посмотреть, какие у вас параметры форматирования.

+0

Спасибо, это трюк! –

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