0
我在创建日期时遇到问题。为什么GregorianCalendar返回0而不是MONTH?
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
但我不知道为什么会发生这种情况?
什么失败?究竟发生了什么问题?程序崩溃了,还是只是得到意想不到的结果?实际结果与预期结果有何不同? – nhgrif
31.6没有exsist我认为:(和20.0没有exisits相同 – user2921198
Java中的月份是基于0的,看起来像你有7月31日,8月1日,1月23日等 – rgettman