如何在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;
}
我试过这个,但它不起作用
谢谢
一个较短的方式。 (假设时间> = 0)
public String timeConvert(int time) {
return time/24/60 + ":" + time/60%24 + ':' + time%60;
}
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`
}
}
如果你想自己做,那就走另一条路。
如果使用Java 6,则TimeUnit枚举可能很有用。例如:
TimeUnit.HOURS.convert(10, TimeUnit.DAYS)
此静态调用将10天转换为小时单位,并返回240.您可以使用从NANOSECONDS开始到DAYS结束的时间单位。
实际上,TimeUnit可以从Java 5获得,但在版本6中添加了更多的单元。
--EDIT--现在我更了解你的问题,使用除了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)除数不应随天数变化,因为天数与一小时内的分钟数无关。
除此之外,看看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 ";
}
return result;
}
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";
}
}
}
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);
}
}
为了最好的可读性,它不会打印0天或0小时或0分钟。例如 - (如果分钟= 1500,那么它将仅打印1天1小时)
int minute = 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);