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;
}
私はこれを試しましたが、うまくいきません
ありがとう
短い方法。 (時間> = 0と想定)
public String timeConvert(int time) {
return time/24/60 + ":" + time/60%24 + ':' + time%60;
}
これを自分で行いたい場合は、逆に行ってください。
Java 6を使用する場合、TimeUnit列挙型が役立ちます。例:
TimeUnit.HOURS.convert(10, TimeUnit.DAYS)
この静的呼び出しは、10日を時間単位に変換し、240を返します。NANOSECONDSで始まりDAYSで終わる時間単位で遊ぶことができます。
実際、TimeUnitはJava 5から入手できますが、バージョン6ではさらにユニットが追加されました。
-編集-私はあなたの質問をよりよく理解したので、Romainの応答のように除算と剰余のアプローチを使用します。私のヒントは、単一の時間単位への変換にのみ役立ちます。
そして答えは:
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;
}
このコードについてどう思いますか?
1)コードが繰り返されます。これは私の意見では悪いコードの兆候です。
2)日数は、1時間の分数とはほとんど関係がないため、除数は日数によって変化しないはずです。
それを超えて、Romain Hippeauのアプローチを見て、彼はそれを行う方法をあなたに話しました。
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;
}
私はこのコードを使用しています。それも役立ちます。
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";
}
}
}
最高の読みやすさのために、0日または0時間または0分を印刷しないように。例-(分= 1500の場合、1日1時間のみ印刷されます)
int分= 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);
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);
}
}
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`
}
}