画面入力値の西暦を、和暦に変換する必要があり、質問します。
以下スースの通り作成したのですが、入力値の「月」が+1されてしまいます。
解決法を教えてください。

入力値(以下ソースのcalender.set(2016, 3, 24);部分) → 2016, 3, 24
実行結果 → 平成28年4月30日

となり3月となってほしいのに4月となってしまいます。

import java.text.*;
import java.util.*;

public class MyTest {
  public static void main(String[] args) {
    Locale defaultLocale = new Locale("ja", "JP", "JP");
    DateFormat japaneseFormat = new SimpleDateFormat("GGGGy年M月d日",
            defaultLocale);

    Calendar calender = Calendar.getInstance();
    calender.set(2016, 3, 24);

    System.out.println(japaneseFormat.format(calender.getTime()));
  }
}

ポイントは、システム日付ではなく、外部から与えられた引数で西暦→和暦に変換したいです。