class DateCheckFilter extends AbstractDateCheckFilter {

  @Override
  protected Calendar getCalendar() {
    return Calendar.getInstance(Locale.UK);
  }

  @SuppressWarnings("ControlFlowStatementWithoutBraces")
  @Override
  protected int getDayOfWeek(String dayStr) {
    String day = dayStr.toLowerCase();
    if (day.startsWith("do") || day.equals("domenica")) return Calendar.SUNDAY;
    if (day.startsWith("lu") || day.equals("lunedì")) return Calendar.MONDAY;
    if (day.startsWith("ma") || day.equals("martedì")) return Calendar.TUESDAY;
    if (day.startsWith("me") || day.equals("mercoledì")) return Calendar.WEDNESDAY;
    if (day.startsWith("gi") || day.equals("giovedì")) return Calendar.THURSDAY;
    if (day.startsWith("ve") || day.equals("venerdì")) return Calendar.FRIDAY;
    if (day.startsWith("sa") || day.equals("sabato")) return Calendar.SATURDAY;
    throw new RuntimeException("Could not find day of week for '" + dayStr + "'");
  }

  @SuppressWarnings("ControlFlowStatementWithoutBraces")
  @Override
  protected String getDayOfWeek(Calendar date) {
    String englishDay = date.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.UK);
    if (englishDay.equals("Sunday")) return "domenica";
    if (englishDay.equals("Monday")) return "lunedì";
    if (englishDay.equals("Tuesday")) return "martedì";
    if (englishDay.equals("Wednesday")) return "mercoledì";
    if (englishDay.equals("Thursday")) return "giovedì";
    if (englishDay.equals("Friday")) return "venerdì";
    if (englishDay.equals("Saturday")) return "sabato";
    return "";
  }

  @SuppressWarnings({"ControlFlowStatementWithoutBraces", "MagicNumber"})
  @Override
  protected int getMonth(String monthStr) {<FILL_FUNCTION_BODY>}
}

    String mon = monthStr.toLowerCase();
    if (mon.startsWith("gen")) return 1;
    if (mon.startsWith("feb")) return 2;
    if (mon.startsWith("mar")) return 3;
    if (mon.startsWith("apr")) return 4;
    if (mon.startsWith("mag")) return 5;
    if (mon.startsWith("giu")) return 6;
    if (mon.startsWith("lug")) return 7;
    if (mon.startsWith("ago")) return 8;
    if (mon.startsWith("set")) return 9;
    if (mon.startsWith("ott")) return 10;
    if (mon.startsWith("nov")) return 11;
    if (mon.startsWith("dic")) return 12;
    throw new RuntimeException("Could not find month '" + monthStr + "'");
  
<methods>public non-sealed void <init>() ,public org.languagetool.rules.RuleMatch acceptRuleMatch(org.languagetool.rules.RuleMatch, Map<java.lang.String,java.lang.String>, int, org.languagetool.AnalyzedTokenReadings[], List<java.lang.Integer>) <variables>protected static final java.util.regex.Pattern DAY_OF_MONTH_PATTERN,private static final Logger logger