如何将分钟转换为天,小时,分钟

Edd*_*nho 14 java time duration

如何在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;
 }
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用

谢谢

Pet*_*rey 31

一个较短的方式.(假设时间> = 0)

 public String timeConvert(int time) { 
   return time/24/60 + ":" + time/60%24 + ':' + time%60;
 }
Run Code Online (Sandbox Code Playgroud)

  • 抱歉..我刚刚注意到这个答案有一个java标签。我在搜索类似 javascript 的内容时找到了您的答案。因此评论时要牢记 javascript 的更新。无论如何......它帮助我朝着正确的方向:-) (2认同)

Rom*_*eau 15

如果你想自己做,那就走另一条路.

  1. 将数字除以60*24.(这将得到天数.)
  2. 将剩余部分除以60.(这将给你几小时.)
  3. #2的剩余部分是分钟数.

  • 只要你在前两种情况中同时取出商和余数,Romain的方法就可以正常工作.如果你有1600分钟除以(60*24),则商为1,余数为160,然后除以60.商的商为2,余数为40.因此1600分等于1天,2小时40分钟. (3认同)

Eya*_*der 10

如果使用Java 6,则TimeUnit枚举可能很有用.例如:

TimeUnit.HOURS.convert(10, TimeUnit.DAYS)
Run Code Online (Sandbox Code Playgroud)

此静态调用将10天转换为小时单位,并返回240.您可以使用从NANOSECONDS开始到DAYS结束的时间单位.

实际上,TimeUnit可以从Java 5获得,但在版本6中添加了更多单元.

--EDIT--现在我更了解你的问题,使用除了Romain的响应中的除法和余数方法.我的提示仅适用于转换为单个时间单位.


Arv*_*ash 7

Java-9java.time解决方案:

import java.time.Duration;

public class Main {
    public static void main(String[] args) {
        // Test
        System.out.println(minutesToDaysHoursMinutes(10080));
        System.out.println(minutesToDaysHoursMinutes(1600));
    }

    public static String minutesToDaysHoursMinutes(int time) {
        Duration d = Duration.ofMinutes(time);
        long days = d.toDaysPart();
        long hours = d.toHoursPart();
        long minutes = d.toMinutesPart();
        return String.format("%d Day(s) %d Hour(s) %d Minute(s)", days, hours, minutes);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

7 Day(s) 0 Hour(s) 0 Minute(s)
1 Day(s) 2 Hour(s) 40 Minute(s)
Run Code Online (Sandbox Code Playgroud)

Java-8java.time解决方案:

import java.time.Duration;

public class Main {
    public static void main(String[] args) {
        // Test
        System.out.println(minutesToDaysHoursMinutes(10080));
        System.out.println(minutesToDaysHoursMinutes(1600));
    }

    public static String minutesToDaysHoursMinutes(int time) {
        Duration d = Duration.ofMinutes(time);
        long days = d.toDays();
        long hours = d.toHours() % 24;
        long minutes = d.toMinutes() % 60;
        return String.format("%d Day(s) %d Hour(s) %d Minute(s)", days, hours, minutes);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

7 Day(s) 0 Hour(s) 0 Minute(s)
1 Day(s) 2 Hour(s) 40 Minute(s)
Run Code Online (Sandbox Code Playgroud)

从Trail: Date Time了解现代日期时间 API 。


Edd*_*nho 5

答案是:

 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;
 }
Run Code Online (Sandbox Code Playgroud)

你怎么看待这段代码?