0

日付の作成に問題があります。

Calendar gc = new GregorianCalendar();
int leto = randBetween(2001, 2020);
gc.set(GregorianCalendar.YEAR, leto);
int dan= randBetween(1, gc.getActualMaximum(GregorianCalendar.DAY_OF_YEAR));
gc.set(GregorianCalendar.DAY_OF_YEAR, dan);
//   System.out.println(gc.get(GregorianCalendar.YEAR) + "-" +
//     gc.get(GregorianCalendar.MONTH) + "-" +
//     gc.get(GregorianCalendar.DAY_OF_MONTH));

public static int randBetween(int start, int end) {
  return start + (int)Math.round(Math.random() * (end - start));
}

日付を生成する関数がありますが、この関数には多くの失敗があります。MONTH 値が設定されていない日付が多数あります。

31,6,2004 1,7,2004
23,0,2013 24,0,2013
19,0,2008 20,0,2008 
31,9,2014 31,9,2014

しかし、私はなぜこれが起こるのか分かりませんか?

4

1 に答える 1