从数字计算日期

时间:2011-05-09 20:43:03

标签: datetime gwt

我需要一种能从任意随机数给出小时和分钟数的方法。例如,如果随机数为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;
 }

这就是我如何分别获得小时和分钟。如果你有一个更好的方法,请给我一个更好的方法。

由于

3 个答案:

答案 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);