package com.prolificinteractive.materialcalendarview.format;
import com.prolificinteractive.materialcalendarview.CalendarUtils;
import java.util.Calendar;
import java.util.Locale;
/**
* Use a {@linkplain java.util.Calendar} to get week day labels.
*
* @see java.util.Calendar#getDisplayName(int, int, java.util.Locale)
*/
public class CalendarWeekDayFormatter implements WeekDayFormatter {
private final Calendar calendar;
/**
* Format with a specific calendar
*
* @param calendar Calendar to retrieve formatting information from
*/
public CalendarWeekDayFormatter(Calendar calendar) {
// recompute all fields of the calendar based on current date
// See "Getting and Setting Calendar Field Values"
// in https://developer.android.com/reference/java/util/Calendar.html
calendar.get(Calendar.DAY_OF_WEEK); // Any fields to get is OK to recompute all fields in the calendar.
this.calendar = calendar;
}
/**
* Format with a default calendar
*/
public CalendarWeekDayFormatter() {
this(CalendarUtils.getInstance());
}
/**
* {@inheritDoc}
*/
@Override
public CharSequence format(int dayOfWeek) {
calendar.set(Calendar.DAY_OF_WEEK, dayOfWeek);
return calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault());
}
}