2016-08-10 2 views
-2

У меня есть сомнения относительно того, как суммировать общее количество часов в секундах в java, например, у меня есть 160: 00: 00 и 24:00:00 и 13:50:00 и 00:10:00 Мне нужно получить грандиозный сумма, как 198: 00: 00 как я могу вычислить это до сих пор, что я попробовал этоКак суммировать общее количество часов, минут, секунд в java?

for(int i=0;i<addnoteobj.size();i++){ 


      String s = addnoteobj.get(i).getDuration(); 
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss"); 
      simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
      String[] tokens = s.split(":"); 
      int hours = Integer.parseInt(tokens[0]); 
      int minutes = Integer.parseInt(tokens[1]); 
      int seconds = Integer.parseInt(tokens[2]); 
      duration = 3600 * hours + 60 * minutes + seconds; 
      int j = duration/3600; 
      int h= (duration%3600)/60; 
      int m = (duration % 60); 


      hourss=hourss+j; 
      mm=mm+h; 
      sss=sss+m; 

      date3 = hourss + ":" + mm + ":" + ss; 
      String time = simpleDateFormat.format(new Date(duration*1000L)); 
      Log.d("dat",time); 


      try { 
        date=simpleDateFormat.parse(s); 
        ss=ss+date.getTime(); 
        date3 = simpleDateFormat.format(new Date(ss)); 
        // total=dates.getTime(); 
        Log.d("time",date3); 
       } catch (ParseException e) { 
        e.printStackTrace(); 
       } 


     } 

Но я не могу этого добиться, как это сделать Возникает общее количество часов в списке, как получить общее количество часов, заранее спасибо

+2

Рассмотрите возможность использования лучших классов управления временем, чем 'java.util.Date' и' SimpleDateFormat'. Если у вас есть Java 8, используйте 'java.time', иначе используйте Joda-Time. У них есть классы, специально предназначенные для длительности. – RealSkeptic

+0

Можете ли вы поделиться некоторыми фрагментами –

+2

Зачем вам нужны другие люди для запуска поисковой системы с ключевыми словами, которые вам только что дали? – GhostCat

ответ

0

Я намеренно оставил println, чтобы вы могли видеть поток кода. надеюсь, это поможет вам ...

public static void main(String[] args) { 
     String time[] = { "160:00:00", "24:00:00", "13:50:00", "00:10:00" }; 
     int hours = 0, minutes = 0, seconds = 0; 
     for (String string : time) { 
      String temp[] = string.split(":"); 
      hours = hours + Integer.valueOf(temp[0]); 
      minutes = minutes + Integer.valueOf(temp[1]); 
      seconds = seconds + Integer.valueOf(temp[2]); 
     } 
     System.out.println(hours + ":" + minutes + ":" + seconds); 
     if (seconds == 60) { 
      minutes = minutes + 1; 
      seconds = 0; 
     } else if (seconds > 59) { 
      minutes = minutes + (seconds/60); 
      seconds = seconds % 60; 
     } 
     System.out.println(hours + ":" + minutes + ":" + seconds); 
     if (minutes == 60) { 
      hours = hours + 1; 
      minutes = 0; 
     } else if (minutes > 59) { 
      hours = hours + (minutes/60); 
      minutes = minutes % 60; 
     } 
     System.out.println(hours + ":" + minutes + ":" + seconds); 
     String output = ""; 
     output = String.valueOf(hours); 
     output = output.concat(":" + (String.valueOf(minutes).length() == 1 ? "0" + String.valueOf(minutes) : String.valueOf(minutes))); 
     output = output.concat(":" + (String.valueOf(seconds).length() == 1 ? "0" + String.valueOf(seconds) : String.valueOf(seconds))); 
     System.out.println(output); 
} 
Смежные вопросы