Я использую период времени Joda для суммирования нескольких значений времени. Начиная с 00:00:00, я добавляю каждое количество времени, чтобы получить общее количество времени для всех видов деятельности. Я хотел бы взять общее время, найденное путем суммирования всех значений времени и деления на общее расстояние, чтобы получить среднее время на единицу измерения.Получите среднее время с помощью Joda Time
Код:
builder = new PeriodFormatterBuilder();
builder.printZeroAlways()
.minimumPrintedDigits(2)
.appendHours()
.appendSeparator(":")
.appendMinutes()
.appendSeparator(":")
.appendSeconds();
PeriodFormatter formatter = builder.toFormatter();
PeriodParser parser = builder.toParser();
String zero = "00:00:00";
MutablePeriod start = new MutablePeriod();
MutablePeriod adding = new MutablePeriod();
parser.parseInto(start, zero, 0, Locale.getDefault());
System.out.println("Orig Time: "+formatter.print(start));
float total = 0;
for (Activity temp : last7acts) {
System.out.println(temp.getCatName()+" - "+temp.getTime()+" - "+temp.getDistance()+" "+temp.getUnits());
total = total + temp.getDistance();
String add = temp.getTime();
parser.parseInto(adding, add, 0, Locale.getDefault());
start.add(adding);
System.out.println("Adding Time: "+formatter.print(start));
if (start.getSeconds() > 60) {
int origSeconds = start.getSeconds();
int newMinutes = origSeconds/60;
int newSeconds = origSeconds % 60;
start.addMinutes(newMinutes);
start.setSeconds(newSeconds);
}
if (start.getMinutes() > 60) {
int origMinutes = start.getMinutes();
int newHours = origMinutes/60;
int newMinutes = origMinutes % 60;
start.addHours(newHours);
start.setMinutes(newMinutes);
}
System.out.println("Altered Time: "+formatter.print(start));
}
System.out.println("Final Distance: "+total);
System.out.println("Final Time: "+formatter.print(start));
Выход:
Orig Time: 00:00:00
Run - 00:16:08 - 2.0 miles
Adding Time: 00:16:08
Altered Time: 00:16:08
Run - 00:18:09 - 2.21 miles
Adding Time: 00:34:17
Altered Time: 00:34:17
Run - 00:23:35 - 2.69 miles
Adding Time: 00:57:52
Altered Time: 00:57:52
Run - 00:34:45 - 4.29 miles
Adding Time: 00:91:97
Altered Time: 01:32:37
Run - 00:36:15 - 4.17 miles
Adding Time: 01:68:52
Altered Time: 02:08:52
Run - 00:18:03 - 2.14 miles
Adding Time: 02:26:55
Altered Time: 02:26:55
Run - 00:17:27 - 2.19 miles
Adding Time: 02:43:82
Altered Time: 02:44:22
Run - 00:43:43 - 5.1 miles
Adding Time: 02:87:65
Altered Time: 03:28:05
Distance: 24.79
Final Time: 03:28:05
Что бы быть лучшим подходом для разделения конечного времени 03:28:05 по 24.79, чтобы получить среднее время на единицу?
Что означает ваша переменная? Какого вида? –
Как насчет того, чтобы преобразовать время в секунды, разделите ваши мили, и вы получите сколько секунд за милю? – gtgaxiola
Спасибо gfgaxiola, это был один из вариантов, но было любопытно, есть ли возможность выполнять деление вовремя без преобразования. Очевидно нет. – user3137729