package ilarkesto.base.time;
import java.util.Calendar;
import java.util.Locale;
public enum Weekday {
MONDAY(Calendar.MONDAY), TUESDAY(Calendar.TUESDAY), WEDNESDAY(Calendar.WEDNESDAY), THURSDAY(Calendar.THURSDAY), FRIDAY(
Calendar.FRIDAY), SATURDAY(Calendar.SATURDAY), SUNDAY(Calendar.SUNDAY);
private final int dayOfWeek;
Weekday(int dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public int getDayOfWeek() {
return dayOfWeek;
}
public int getDayOfWeekAssumeMondayIs1st() {
int ret = dayOfWeek - 1;
if (ret == 0) ret = 7;
return ret;
}
public static Weekday get(int dayOfWeek) {
for (Weekday weekday : Weekday.values()) {
if (weekday.dayOfWeek == dayOfWeek) return weekday;
}
throw new RuntimeException("Weekday does not exist: " + dayOfWeek);
}
public boolean isWeekend() {
return this == SATURDAY || this == SUNDAY;
}
public boolean isWorkday() {
return !isWeekend();
}
public String getLabel(Locale locale) {
// TODO internationalization
switch (this) {
case MONDAY:
return "Montag";
case TUESDAY:
return "Dienstag";
case WEDNESDAY:
return "Mittwoch";
case THURSDAY:
return "Donnerstag";
case FRIDAY:
return "Freitag";
case SATURDAY:
return "Samstag";
case SUNDAY:
return "Sonntag";
}
throw new RuntimeException("fatal enum error in " + getClass().getName());
}
}