我有一个字符串数组,包括像“00:05”,“00:30”,“00:25”等几分钟。我想将这些值作为时间格式求和?任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
我会快速而又肮脏
答案 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;
}
}