我需要一种能从任意随机数给出小时和分钟数的方法。例如,如果随机数为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;
}
这就是我如何分别获得小时和分钟。如果你有一个更好的方法,请给我一个更好的方法。
由于
答案 0 :(得分:1)
用零填充输入字符串,直到长度为4,然后在中间分割字符串?
答案 1 :(得分:1)
也许:
int hours = someNumber / 100;
int minutes = someNumber % 100;
if(hours >= 24 || minutes >= 60) {
//Do whatever
}
答案 2 :(得分:0)
如果您希望您的值可重复,我会将传入的值用作随机生成器的种子。
Random r = new Random(someNumber);
int hr = r.nextInt(24);
int min = r.nextInt(60);