可能最简单的方法是使用数组来表示日期:
public class Demo {
public static void main(String[] args) {
System.out.println(getDay(1));
System.out.println(getDay(7));
}
// Returns the corresponding day for the given dayCounter.
// Assumes that dayCounter goes from 1-7.
private static String getDay(int dayCounter) {
String[] days = new String[] { "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday" };
return days[dayCounter - 1];
}
}
如果您的计数器超过 7(例如,您在每个计时器步骤中将其递增 1),您可能希望对这个版本感兴趣,它基本上会循环所有可用的日期:
public class Demo {
public static void main(String[] args) {
System.out.println(getDay(1));
System.out.println(getDay(7));
System.out.println(getDay(8));
System.out.println(getDay(13));
}
// Returns the corresponding day for the given dayCounter.
// Maps dayCounter to the range of 1-7, assumes that dayCounter
// goes from 1-Integer.MAX_VALUE.
private static String getDay(int dayCounter) {
String[] days = new String[] { "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday" };
return days[dayCounter % 7];
}
}
或者您可以使用DateFormatSymbols 检索工作日,甚至(几乎)自动为您翻译:
import java.text.DateFormatSymbols;
public class Demo {
public static void main(String[] args) {
System.out.println(getDay(1));
System.out.println(getDay(7));
}
// Returns the corresponding day for the given dayCounter.
// Assumes that dayCounter goes from 1-7.
private static String getDay(int dayCounter) {
String[] days = DateFormatSymbols.getInstance().getWeekdays();
return days[dayCounter];
}
}
或者对于 Java 8 及更高版本,当前首选的方法可能是使用新的java.time API(您可以使用方法参数)。此 API 包含一个方便的 DayOfWeek 枚举。
import java.time.DayOfWeek;
import java.time.format.TextStyle;
import java.util.Locale;
public class Demo {
public static void main(String[] args) {
System.out.println(getDay(1));
System.out.println(getDay(7));
}
// Returns the corresponding day for the given dayCounter.
// Assumes that dayCounter goes from 1-7.
private static String getDay(int dayCounter) {
return DayOfWeek.of(dayCounter)
.getDisplayName(TextStyle.FULL, Locale.getDefault());
}
}
如果您只想替换 if 语句,请使用 Ryan 的回答中提到的 switch-case。