我尝试向 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());
}
}
}
最佳答案
您正在将随机天数添加到相同 Calendar
对象中 100 次。这是有道理的,它几乎会立即超越今天进入 future 。
在每次循环时将 GregorianCalendar
对象重新初始化为初始日期。
关于java - 为什么我的日期不能正确添加天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20333562/