输入默认格式,长度相同的时间字符串,返回差值,小数点长度为输入参数的长度
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();
}
因为项目上传的参数,不需要考虑参数小数点后位数不同的原因,所以简化了一些,但是整体方法还是被大哥说 写的太麻烦,辛亏还有一个更简单的方法,不知道谁能想到。此方法已经放弃对任意参数的完善,如果有更简化的方式,请不吝赐教,贴出来也不是说自己写的有多好,就是记录自己的...算是进步吧。
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();
}
因为项目上传的参数,不需要考虑参数小数点后位数不同的原因,所以简化了一些,但是整体方法还是被大哥说 写的太麻烦,辛亏还有一个更简单的方法,不知道谁能想到。此方法已经放弃对任意参数的完善,如果有更简化的方式,请不吝赐教,贴出来也不是说自己写的有多好,就是记录自己的...算是进步吧。
相关文章推荐
- 以字符串形式返回当前系统时间,默认格式为“年月日时分秒”
- VS2010 学习笔记 WF4 (7) 学习If/Else逻辑节点,根据输入参数的长度来返回不同的问候语
- 程序员面试宝典:输入一行字符串,找出其中出现的相同且长度最长的字符串----后缀数组求解
- 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- 给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串
- 保持字符串小数点后两位和EditText输入框中输入的数字的长度限制
- 字符串长度计算、截取、url参数获取、计算百分比、时间戳格式化
- 【剑指Offer-时间效率平衡】在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- C#返回时间格式转换成 js 字符串
- 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串
- 时间格式的转换 生成指定长度的随机字符串
- 第十七周-项目二(3)求字符串的长度并返回。(用数组名作参数)
- Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法
- 输入整数(n是小于9位数的整数),当作字符串处理, 看是否有相同的子串,如1212,相同子串是12, 141516则没有子串(子串长度必须大于等于2)。 若
- Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法
- 写一个函数, 2个参数, 1个字符串, 1个字节数,返回截取的字符串,要 求字符串中的中文不能出现乱码: 如 ( “ 我ABC”, 4) 应该截为 “ 我AB”,输入( “ 我 ABC汉DEF”, 6
- 输入一个数,把它作为一个串,判断其中是否包含长度>=2的相同子串,如 果包含,返回1,不包含,返回0
- 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出他及其首字符串位置
- Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法
- 输入一行字符串,找出其中的相同且长度最长的字符串