为什么天没有正确添加到我的约会?

Bri*_*ian 0 java gregorian-calendar date-arithmetic

我试图在2010年1月1日之前添加一个随机天数,以使新日期在当时和今天(2013年12月2日)之间下降.两个日期之间的总天数是1431.我用Google搜索了如何执行此操作,并发现添加小时数,您只需要使用HOUR字段.但是,当我尝试使用DATE字段时,我会超出预期范围.

import java.util.Random;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class DateArithmetic{
    public static void main(String[] args){
            Random random = new Random();
            Calendar gc = new GregorianCalendar(2010, Calendar.JANUARY, 1, 0, 0, 1);

            System.out.println(gc.getTime());

            for(int i=0; i<100; i++){
                    gc.add(GregorianCalendar.DATE, random.nextInt(1431));
                    System.out.println(gc.getTime());
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

rge*_*man 5

您要向同一 Calendar对象添加100次随机天数.有意义的是,它几乎可以立即推进到今天的未来.

GregorianCalendar每个循环上的对象重新初始化为初始日期.