我需要一种方法,它可以从任何随机数中给我小时数和分钟数。例如,如果随机数是 500,我希望将信息设置为 5 小时 0 分钟。另一个例子是 2359 是 23 小时 59 分钟。随机数由用户输入,我只关心小时和分钟(而不是秒)。我什至不必担心四舍五入分钟.所以我写了这个方法,这对我来说效率不高。谁能提出更好的方法?或者这足够好吗?
private void calculateDateTime(int someNumber){
if(someNumber<=0){
return;
}
String number = Integer.toString(someNumber);
String hrs ="";
String mins ="00";
if(number.length()>4){
hrs =number.substring(0, 2);
mins = number.substring(2,4);
}
else{
float f =((float)someNumber)/100;
String s = Float.toString(f);
String [] splitArray = s.split("\.");
if(splitArray.length>1) {
hrs = splitArray[0];
mins = splitArray[1];
}
}
int hr = Integer.valueOf(hrs);
int min = Integer.valueOf(mins);
if(hr>=24||min>=60){
return;
}
这就是我分别获得人力资源和分钟数的方式。如果您有更好的方法,请给我一个更好的方法。
谢谢
用零填充输入字符串直到长度为 4,然后将字符串洒在中间?
也许:
int hours = someNumber / 100;
int minutes = someNumber % 100;
if(hours >= 24 || minutes >= 60) {
//Do whatever
}
如果您希望您的值可重复,我会使用传入的值作为随机生成器的种子。
Random r = new Random(someNumber);
int hr = r.nextInt(24);
int min = r.nextInt(60);