- Баллы
- 76
- Имя в Minecraft
- Slavok2001
Здравствуйте. Вчера на досуге решил написать преобразователь в секунды, минуты и т.д.
Я хотел спросить, есть какое-нибудь оптимальное решение, нежели мое?
P.S. Если использовать public String setCustomTime, то те return'ы, что в условиях, нифига не возвращает, только первое условие работает.
Я хотел спросить, есть какое-нибудь оптимальное решение, нежели мое?
Java:
public void setCustomTime(Long time, String second, String minute, String hour, String day, String month, String year) {
StringBuilder str = new StringBuilder();
if(time >= 60) {
if(time >= 3600) {
if(time >= 86400) {
if(time >= 2592000) {
if(time >= 31104000) {
long years = time/31104000;
long months = (time - (years*31104000))/2592000;
long days = (time - (years*31104000) - (months*2592000))/86400;
long hours = (time - (years*31104000) - (months*2592000) - (days*86400))/3600;
long minutes = (time - (years*31104000) - (months*2592000) - (days*86400) - (hours*3600))/60;
long seconds = time - (years*31104000) - (months*2592000) - (days*86400) - (hours*3600) - (minutes*60);
str.append(years + " " + year + " ");
if(years != 0) {
str.append(months + " " + month + " ");
}
if(days != 0) {
str.append(days + " " + day + " ");
}
if(hours != 0) {
str.append(hours + " " + hour + " ");
}
if(minutes != 0) {
str.append(minutes + " " + minute + " ");
}
if(seconds != 0) {
str.append(seconds + " " + second + " ");
}
this.output = str.toString().trim();
return;
}
long months = time/2592000;
long days = (time - (months*2592000))/86400;
long hours = (time - (months*2592000) - (days*86400))/3600;
long minutes = (time - (months*2592000) - (days*86400) - (hours*3600))/60;
long seconds = time - (months*2592000) - (days*86400) - (hours*3600) - (minutes*60);
str.append(months + " " + months + " ");
if(days != 0) {
str.append(days + " " + day + " ");
}
if(hours != 0) {
str.append(hours + " " + hour + " ");
}
if(minutes != 0) {
str.append(minutes + " " + minute + " ");
}
if(seconds != 0) {
str.append(seconds + " " + second + " ");
}
this.output = str.toString().trim();
return;
}
long days = time/86400;
long hours = (time - (days*86400))/3600;
long minutes = (time - (days*86400) - (hours*3600))/60;
long seconds = time - (days*86400) - (hours*3600) - (minutes*60);
str.append(days + " " + day + " ");
if(hours != 0) {
str.append(hours + " " + hour + " ");
}
if(minutes != 0) {
str.append(minutes + " " + minute + " ");
}
if(seconds != 0) {
str.append(seconds + " " + second + " ");
}
this.output = str.toString().trim();
return;
}
long hours = time/3600;
long minutes = (time - (hours*3600))/60;
long seconds = time - (hours*3600) - (minutes*60);
str.append(hours + " " + hour + " ");
if(minutes != 0) {
str.append(minutes + " " + minute + " ");
}
if(seconds != 0) {
str.append(seconds + " " + second + " ");
}
this.output = str.toString().trim();
return;
}
long minutes = time/60;
long seconds = time%60;
str.append(minutes + " " + minute);
if(seconds != 0) {
str.append(seconds + " " + second + " ");
}
this.output = str.toString().trim();
return;
}
}