как преобразовать минуты в дни, часы, минуты

как преобразовать минуты в дневные часы и минуты в Java (у нас есть неделя здесь, 7 дней),

 public String timeConvert(int time){
   String t = "";

   int h = 00;
   int m = 00;

  // h= (int) (time / 60);
  // m = (int) (time % 60);

  // if(h>=24) h=00;

   if((time>=0) && (time<=24*60)){
      h= (int) (time / 60);
      m = (int) (time % 60);
   }else if((time>24*60) && (time<=24*60*2)){
       h= (int) (time / (1440));
      m = (int) (time % (1440));
   }else if((time>24*60*2) && (time<=24*60*3)){
       h= (int) (time / (2880));
      m = (int) (time % (2880));
   }else if((time>24*60*3) && (time<=24*60*4)){
       h= (int) (time / (2880*2));
      m = (int) (time % (2880*2));
   }else if((time>24*60*4) && (time<=24*60*5)){
       h= (int) (time / (2880*3));
      m = (int) (time % (2880*3));
   }else if((time>24*60*5) && (time<=24*60*6)){
       h= (int) (time / (2880*4));
      m = (int) (time % (2880*4));
   }else if((time>24*60*6) && (time<=24*60*7)){
       h= (int) (time / (2880*5));
      m = (int) (time % (2880*5));
   }

   t =h+":"+m ;
   return t;
 }

Я попробовал это, но это не работает

спасибо

14
задан Eyal Schneider 1 May 2010 в 18:37
поделиться

5 ответов

Более короткий путь. (Предполагается, что время > = 0)

 public String timeConvert(int time) { 
   return time/24/60 + ":" + time/60%24 + ':' + time%60;
 }
31
ответ дан 1 December 2019 в 05:53
поделиться

Если хотите сделать это сами, идите другим путем.

  1. Разделите число на 60 * 24. (Получится количество дней.)
  2. Разделите остаток на 60. (Это даст вам количество часов.)
  3. Остаток от # 2 - это результат количество минут.
15
ответ дан 1 December 2019 в 05:53
поделиться

Если вы используете Java 6, может оказаться полезным перечисление TimeUnit. Например:

TimeUnit.HOURS.convert(10, TimeUnit.DAYS)

Этот статический вызов преобразует 10 дней в единицы часа и возвращает 240. Вы можете поиграть с единицами времени, начиная с НС и заканчивая ДНЯМИ.

Фактически TimeUnit доступен из Java 5, но в версии 6 были добавлены дополнительные модули.

- РЕДАКТИРОВАТЬ-- Теперь, когда я лучше понимаю ваш вопрос, используйте подход деления и остатка, как в ответе Ромена. Мой совет полезен только для перевода в единую единицу времени.

10
ответ дан 1 December 2019 в 05:53
поделиться

и ответ:

 public String timeConvert(int time){
   String t = "";

  int j = time/(24*60);
  int h= (time%(24*60)) / 60;
  int m = (time%(24*60)) % 60;



   t =j + ":" + h + ":" + m;
   return t;
 }

что вы думаете об этом коде?

5
ответ дан 1 December 2019 в 05:53
поделиться

1) Код повторяется. На мой взгляд, это признак плохого кода.

2) Делитель не должен меняться в сторону количества дней, так как количество дней имеет мало общего с количеством минут в часе.

Кроме того, посмотрите на подход Ромена Хиппо, он рассказал вам, как это сделать.

4
ответ дан 1 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: