Java 如果分钟数的格式为字符串,如何对数组中的分钟数求和?
我有一个字符串数组,其中包含一些分钟,如“00:05”、“00:30”、“00:25”等。我想将这些值相加为时间格式?有人能帮我怎么做吗?我要快走快走Java 如果分钟数的格式为字符串,如何对数组中的分钟数求和?,java,time,Java,Time,我有一个字符串数组,其中包含一些分钟,如“00:05”、“00:30”、“00:25”等。我想将这些值相加为时间格式?有人能帮我怎么做吗?我要快走快走 上的每个字符串“:” 两部分都是整数 将第一次乘以60,将小时转换为分钟,然后将第二部分相加 对数组中的每个值执行此操作,并将它们一起计数 这将导致以分钟为单位的总时间,您可以将其转换为您喜欢的任何格式 这是我的建议。既不编译、运行、测试也不保证 long seconds = 0; for ( String min : minutes ) {
这是我的建议。既不编译、运行、测试也不保证
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 ) ;
你可以这样做,然后查看结果。对于小时部分,执行相同的操作,并将其乘以60。将“:”上的字符串拆分,将值分成整数并相加。以分钟为单位的总时间:
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]);
面向对象的方法:
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;
}
}
此行--新日期(秒)代码>--不会做你想做的事。