18

Javaで分を日時間と分に変換する方法(ここには1週間、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;
 }

私はこれを試しましたが、うまくいきません

ありがとう

4

14 に答える 14

40

短い方法。(時間> = 0と想定)

 public String timeConvert(int time) { 
   return time/24/60 + ":" + time/60%24 + ':' + time%60;
 }
于 2010-05-03T08:49:42.593 に答える
16

これを自分で行いたい場合は、逆に行ってください。

  1. 数値を60*24で割ります(これで日数が得られます)。
  2. 余りを60で割ります(これで時間数がわかります)。
  3. #2の残りは分数です。
于 2010-05-01T18:45:07.363 に答える
11

Java 6を使用する場合は、TimeUnit列挙型が役立ちます。例えば:

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

この静的呼び出しは、10日を時間単位に変換し、240を返します。NANOSECONDSで始まりDAYSで終わる時間単位で遊ぶことができます。

実際、TimeUnitはJava 5から入手できますが、バージョン6ではさらにユニットが追加されました。

-編集-あなたの質問をよりよく理解したので、Romainの応答のように除算と剰余のアプローチを使用します。私のヒントは、単一の時間単位への変換にのみ役立ちます。

于 2010-05-01T18:35:15.860 に答える
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;
 }

このコードについてどう思いますか?

于 2010-05-01T20:25:39.883 に答える
4

1)コードが繰り返されます。これは私の意見では悪いコードの兆候です。

2)日数は、1時間の分数とはほとんど関係がないため、除数は日数によって変化しないはずです。

それを超えて、Romain Hippeauのアプローチを見て、彼はそれを行う方法をあなたに話しました。

于 2010-05-01T19:07:38.107 に答える
4

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);
    }
}

出力:

7 Day(s) 0 Hour(s) 0 Minute(s)
1 Day(s) 2 Hour(s) 40 Minute(s)

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);
    }
}

出力:

7 Day(s) 0 Hour(s) 0 Minute(s)
1 Day(s) 2 Hour(s) 40 Minute(s)

Trail: DateTimeから最新の日時APIについて学びます。

于 2020-12-29T10:04:41.207 に答える
3

1日2時間5分

public static String convertToDaysHoursMinutes(long minutes) {

    int day = (int)TimeUnit.MINUTES.toDays(minutes);
    long hours = TimeUnit.MINUTES.toHours(minutes) - (day *24);
    long minute = TimeUnit.MINUTES.toMinutes(minutes) - (TimeUnit.MINUTES.toHours(minutes)* 60);

    String result = "";

    if (day != 0){
        result += day;
        if (day == 1){
            result += " day ";
        }
        else{
            result += " days ";
        }
    }

    if (hours != 0){
        result += hours;

        if (hours == 1){
            result += " hr ";
        }
        else{
            result += " hrs ";
        }
    }

    if (minute != 0){
        result += minute;

        if (minute == 1){
            result += " min";
        }
        else{
            result += " mins";
        }
    }

    return result;
}
于 2018-04-22T17:21:53.543 に答える
2

誰かがJavaScriptで受け入れられた回答を使用したい場合、時間は小数で表示されます。これらの小数を削除するには、次のコードを使用できます。

function timeConvert(time)
{ 
   return parseInt(time/24/60) + " days," + parseInt(time/60%24) + ' hours,' + parseInt(time%60) + " minutes";
}
于 2021-06-27T10:34:22.557 に答える
0

私はこのコードを使用しています。それも役立ちます。

private String getText(int minutes){

    int weeks = minutes / 10080;
    int aboveWeeks = minutes % 10080;
    int days = aboveWeeks / 1440;
    int aboveDays = aboveWeeks % 1440;
    int hours = aboveDays / 60;
    int aboveHours = aboveDays % 60;
    int minute = aboveHours / 60;

    if(weeks > 0 && days > 0) {
        if(weeks > 1 && days > 1){
            return weeks + " weeks " + days + " days before";
        } else {
            return weeks + " weeks " + days + " day before";
        }
    } else if (weeks > 0){
        if (weeks > 1){
            return weeks + " weeks before";
        } else {
            return weeks + " week before";
        }
    } else if(days > 0 && hours > 0){
        if(days > 1 && hours > 1){
            return days + " days " + hours + " hours before";
        } else {
            return days + " days " + hours + " hour before";
        }
    } else if(days > 0){
        if (days > 1){
            return days + " days before";
        } else {
            return days + " day before";
        }
    } else if(hours > 0 && minute > 0){
        if(hours > 1 && minute > 1){
            return hours + " hours " + minute + " minutes before";
        } else {
            return hours + " hours " + minute + " minute before";
        }
    } else if(hours > 0){
        if (hours > 1){
            return hours + " hours before";
        } else {
            return hours + " hour before";
        }
    } else {
        if (minutes > 1){
            return minutes + " minutes before";
        } else {
            return minutes + " minute before";
        }
    }
}
于 2017-05-18T08:41:38.710 に答える
0
class time{
    public static void main (String args[]){
        System.out.println("Hello");
        int duration=1500;
         String testDuration = "";

        if(duration < 60){
            testDuration = duration + " minutes";
        }
        else{

            if((duration / 60)<24)
            {
                if((duration%60)==0){
                    testDuration = (duration / 60) + " hours";
                }
                else{
            testDuration = (duration / 60) + " hours," + (duration%60) + " minutes";
                }
            }
            else{

                if((duration%60)==0){
                    if(((duration/60)%24)==0){
                        testDuration = ((duration / 24)/60) + " days,";

                    }
                    else{
                    testDuration = ((duration / 24)/60) + " days," + (duration/60)%24 +"hours";
                    }
                }
                    else{
                testDuration = ((duration / 24)/60) + " days," + (duration/60)%24 +"hours"+ (duration%60) + " minutes";
                    }
            }
        }

        System.out.println(testDuration);
    }
}
于 2017-08-02T13:35:12.047 に答える
0

最高の読みやすさのために、0日または0時間または0分を印刷しないように。例-(分= 1500の場合、1日1時間のみ印刷されます)

intminute = 150;

    StringBuilder sb=new StringBuilder();

    int day=minute/1440;
    int rem=minute%1440;
    int hour=rem/60;
    int Minute=rem%60;

if(day>0)
        sb.append(day+" day ");

if(hour>0)
        sb.append(hour+" hour ");

if(Minute>0)
        sb.append(Minute+" minute");

    System.out.println(sb);
于 2018-09-14T21:09:40.843 に答える
0
const convertMinutesToDays = (minutes) => {
    let hours
    let days 
    let restMinutes
    const onedayMinutes = 1440 //24*60

    if(minutes < 60){
        return `${minutes} Minutes` 
    }else if(minutes > 60 && minutes < onedayMinutes){
        hours = Math.floor(minutes/60)
        restMinutes = minutes%60
        return `${hours} Hours ${restMinutes} Minutes`
    }else{
        days = Math.floor((minutes/60)/24)
        restMinutes = minutes % onedayMinutes
        hours = Math.floor(restMinutes/60) 
        restMinutes = restMinutes % 60
        return `${days} Days ${hours} Hours ${restMinutes} Minutes`
    }
}
于 2019-04-17T06:05:12.833 に答える
0

(時間/ 24/60).toFixed(0)+ ":" +(時間/ 60%24).toFixed(0)+':' +(時間%60)

于 2020-09-06T13:45:17.373 に答える
-1

メソッドに文字列を返し、take(int minuts)String getTextOfTime(int minuts){結果を返すだけです。

String getTextOfTime(int minuts){

int weeks = (-minuts / 10080).toInt();
int aboveWeeks = -minuts % 10080;
int days = (aboveWeeks / 1440).toInt();
int aboveDays = (aboveWeeks % 1440);
int hours = (aboveDays / 60).toInt();
int aboveHours = aboveDays % 60;
int minute = aboveHours;

String result = "";

if (weeks != 0) {
  result += weeks.toString();
  if (weeks == 1) {
    result += " week ";
  } else {
    result += " weeks ";
  }
}

if (days != 0) {
  result += days.toString();
  if (days == 1) {
    result += " day ";
  } else {
    result += " days ";
  }
}

if (hours != 0) {
  result += hours.toString();

  if (hours == 1) {
    result += " hr ";
  } else {
    result += " hrs ";
  }
}

if (minute != 0) {
  result += minute.toString();

  if (minute == 1) {
    result += " min";
  } else {
    result += " mins";
  }
}
return result;

}

于 2021-02-18T13:44:56.217 に答える