Я храню два DateTimes
(Joda) в объекте, а затем получаю Period
из объекта с помощью new Period(dateTime1, dateTime2)
. Затем я хочу добавить все периоды из разных объектов вместе. Я одновременно складываю все периоды в переменную и суммирую некоторые периоды в меньших периодах, хранящихся в HashMap<long, Period>
.
Результат и проблема такова. Первый период получает «2 часа и 30 минут» с PeriodFormat.getDefault().print(p)
(значения одинаковы, если я объединяю getHours и getMinutes). Второе значение «5 часов 52 минуты». Все идет нормально. Но когда я делаю это с 3-й и 4-й, минуты перестают конвертироваться в часы.
«5 часов и 103 минуты»
«8 часов 132 минуты»
Должно быть 10ч и 12м, но как видите. Это не то, что я получаю. В чем проблема? Как Period
может просто забыть сделать преобразование? У меня пока нет проблем с выбранными суммами.
code: (с измененными именами переменных)
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)
. Так это работает, но зачем это нужно? - person Yokich   schedule 29.05.2015