Рассчитать дату из числа - PullRequest
0 голосов
/ 10 мая 2011

Мне нужен метод, который бы давал мне количество часов и минут от любого случайного числа. Например, если случайное число равно 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 ]

1 голос
/ 10 мая 2011

Может быть:

int hours = someNumber / 100;
int minutes = someNumber % 100;

if(hours >= 24 || minutes >= 60) {
    //Do whatever
}
1 голос
/ 10 мая 2011

Заполните входную строку нулями, пока длина не станет равной 4, а затем вылили строку в середину?

0 голосов
/ 10 мая 2011

Если вы хотите, чтобы ваши значения были повторяемыми, я бы использовал переданное значение в качестве начального числа в генератор случайных чисел.

Random r = new Random(someNumber);
int hr = r.nextInt(24);
int min = r.nextInt(60);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...