我没有正式的编程培训,我不知道什么是正确的编码方式,但这真的让我很烦恼。我在这里开发一些东西以获得相对时间,现在就是这样的。
if (minutes < 59) {
if (minutes == 1) {
relativeTifmeString = minutesString+" minute ago";
} else {
relativeTifmeString = minutesString+" minutes ago";
}
} else {
if (hours < 23) {
if (hours == 1) {
relativeTifmeString = hourstring+" hour ago";
} else {
relativeTifmeString = hourstring+" hours ago";
}
} else {
if (days == 1) {
relativeTifmeString = dayString+" day ago";
} else {
relativeTifmeString = dayString+" days ago";
}
}
}
但这真的很难看,即使它有效吗?是否有可能以更美丽/更有效的方式写下来?或者你会怎么做?
答案 0 :(得分:2)
我最终会得到这样的东西,这取决于你实际在做什么以及为什么。伪代码:
public String getRelativeTimeString() {
return getAppropriateString(minutes, hours days) + " ago";
}
public String getAppropriateString(minutes, hours, days) {
if (minutes < 59) {
return pluralize(minuteString + " minute", minutes);
}
if (hours < 23) {
return pluralize(hourstring + " hour", hours);
}
return pluralize(dayString + " day", days);
}
public String pluralize(String s, int count) {
return count > 1 ? s + "s" : s;
}
答案 1 :(得分:0)
将其包装在返回字符串的函数中。
public String getTime(){
String outputString = "";
// Minutes
if(condition for minutes is true){
outputString = "SomeText";
return outputString ;
}
// Hours
if(condition for hours is true){
outputString = "SomeText";
return outputString ;
}
// Days
if(condition for daysis true){
outputString = "SomeText";
return outputString ;
}
}
答案 2 :(得分:0)
如果我们知道如何首先填充分钟和小时,这将有所帮助。例如,天可能是2天,小时是11天,而分钟是23天同时?如果是,则if语句:
if (minutes < 59) {
if (minutes == 1) {
relativeTimeString = minutesString+" minute ago";
} else {
relativeTimeString = minutesString+" minutit ago";
}
将是条件进入的唯一if语句,即使它已经超过2天。