如果格式为字符串,如何将数组中的分钟相加?

时间:2011-12-06 19:53:25

标签: java time

我有一个字符串数组,包括像“00:05”,“00:30”,“00:25”等几分钟。我想将这些值作为时间格式求和?任何人都可以帮我解决这个问题吗?

6 个答案:

答案 0 :(得分:1)

我会快速而又肮脏

  1. Split“:”
  2. 上的每个字符串
  3. Convert两个部分为整数
  4. 第一次乘以60将小时数转换为分钟数,然后添加第二部分
  5. 对阵列中的每个值执行此操作,并将它们计算在一起
  6. 这会产生以分钟为单位的总时间,您可以将其转换为您喜欢的任何格式

答案 1 :(得分:1)

总时间(分钟):

int sum = 0;
final String[] mins = new String[] { "00:05", "00:30", "00:25" };
for (String str : mins) {
    String[] parts = str.split(":");
    sum += Integer.parseInt(parts[1]);
}
System.out.println(sum);

您没有准确指定格式化输出的确切方式。

如果可能还有小时元素,则用以下代码替换循环的第二行:

sum += (Integer.parseInt(parts[0]) * 60) + Integer.parseInt(parts[1]);

答案 2 :(得分:0)

这是我的建议。既没有编译,运行,测试,也没有保证。

long seconds =  0; 
for ( String min : minutes )
{
    seconds += Integer.parseInt(min.substring(0,1))*60 + Integer.parseInt(min.substring(3,4));
}
return new Date ( seconds / 1000 ) ;

答案 3 :(得分:0)

你可以substring,然后在结果上调用Integer.parseInt。对于小时部分,执行相同操作并将其乘以60。

答案 4 :(得分:0)

将字符串拆分为':',将值解析为整数并添加'em up。

答案 5 :(得分:0)

面向对象的方法:

public static TimeAcumm sum(final String[] times) {
    final TimeAcumm c = new TimeAcumm();
    for (final String time : times) {
        c.incrementFromFormattedString(time);
    }

    return c;
}

public class TimeAcumm {
    private int hours = 0;
    private int minutes = 0;
    private int seconds = 0;

    public int getHours() {
        return hours;
    }

    public int getMinutes() {
        return minutes;
    }

    public int getSeconds() {
        return seconds;
    }

    public void incrementFromFormattedString(final String time) {
        final String[] parts = time.split(":");
        this.minutes += Integer.parseInt(parts[0]);
        this.seconds += Integer.parseInt(parts[1]);
        validate();
    }

    private void validate() {
        if (this.minutes > 59) {
            this.hours++;
            this.minutes -= 60;
        }

        if (this.seconds > 59) {
            this.minutes++;
            this.seconds -= 60;
        }
    }

    @Override
    public String toString() {
        final String s = hours + "H:" + minutes + "M:" + seconds + "S";
        return s;
    }
}