Я храню два объекта DateTimes
(Joda) в объекте, а затем получаю Period
от объекта по new Period(dateTime1, dateTime2)
. Затем я хочу добавить все периоды из разных объектов. Я добавляю все периоды вместе в переменной и суммирую некоторые периоды в меньшие периоды, хранящиеся в HashMap<long, Period>
.Joda Period не конвертирует все минуты в часы «8h, 132m»
Результат и проблема в этом. Первый период получает «2 часа и 30 минут» с PeriodFormat.getDefault().print(p)
(значения совпадают, если я конкатенирую getHours и getMinutes). Второе значение «5 часов и 52 минуты». Все идет нормально. Но когда я делаю это с 3-го и 4-го, минуты перестают конвертироваться в часы.
"5 часов и 103 минут"
"8 часов и 132 минут"
Это должно быть 10h и 12 м, но, как вы можете видеть. Это не то, что я получаю. В чем проблема? Как можно Period
просто забудьте сделать преобразование? У меня пока нет проблем с выбранными суммами.
код: (с именами переменных изменены)
mainSum= new Period();
tasksSum= new HashMap<Long, Period>();
for(Entry entry: entries){
long main_id= entry.getMain_id();
long task_id = entry.getTask_id();
Period entryPeriod = entry.getPeriod();
if(main_id == mainStuff.getId()){
mainSum = entryPeriod.plus(mainSum);
Timber.d("mainSum: " + PeriodFormat.getDefault().print(mainSum));
Timber.d("sum of workplace: " + mainSum.getHours() + " : " + mainSum.getMinutes());
Period taskPeriod = tasksPeriodSums.remove(task_id);
if(taskPeriod == null){
tasksPeriodSums.put(task_id, entryPeriod);
} else {
tasksPeriodSums.put(task_id, taskPeriod.plus(entryPeriod));
}
}
}
Пожалуйста, помогите, спасибо :)
Я получил его, чтобы показать правильную информацию, добавив '.normalizedStandard()' после функции 'plus (p)'. Так оно работает, но почему это необходимо? – Yokich