您的位置:首页 > 其它

输入默认格式,长度相同的时间字符串,返回差值,小数点长度为输入参数的长度

2017-09-19 13:07 295 查看
public static String getLongFromSecond(String seconds1, String seconds2) {
int position1 = seconds1.indexOf(".");
int betweenInteger = 0;
if (position1 == -1) {
betweenInteger = Integer.parseInt(seconds1) - Integer.parseInt(seconds2);
return String.valueOf(betweenInteger) + "." + "000000000";
}
betweenInteger = Integer.parseInt(seconds1.substring(0, position1))
- Integer.parseInt(seconds2.substring(0, position1));
String s1 = seconds1.substring(position1 + 1);
String s2 = seconds2.substring(position1 + 1);

int[] i1 = new int[s1.length()];
int[] i2 = new int[s2.length()];
String[] result = new String[s1.length()];
StringBuffer last = new StringBuffer();
for (int i = 0; i < s1.length(); i++) {
i1[i] = Integer.parseInt(s1.substring(i, i + 1));
i2[i] = Integer.parseInt(s2.substring(i, i + 1));
}
for (int i = i1.length - 1; i >= 0; i--) {
int t1 = i1[i];
int t2 = i2[i];
if (t1 < t2) {
t1 += 10;
if (i > 0) {
i1[i - 1] -= 1;
} else {
betweenInteger -= 1;
}
}
result[i] = String.valueOf(t1 - t2);
}
last.append(String.valueOf(betweenInteger));
last.append(".");
for (int j = 0; j < result.length; j++) {
last.append(result[j]);
}
return last.toString();
}

因为项目上传的参数,不需要考虑参数小数点后位数不同的原因,所以简化了一些,但是整体方法还是被大哥说 写的太麻烦,辛亏还有一个更简单的方法,不知道谁能想到。此方法已经放弃对任意参数的完善,如果有更简化的方式,请不吝赐教,贴出来也不是说自己写的有多好,就是记录自己的...算是进步吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐