基于之前的在一个特定的时期范围里生成随机的一个时期 此次是生成多组进行一系列操作。
public static long[] random(long startYear ,long endYear, int n) {
long day=24*60*60*1000;
long year =365*day;
long yearStart =(startYear-1970)*year;
long leapDay=(startYear -1970)/4*day;
long hour8=8*60*60*1000;
yearStart -= hour8;
long y=(endYear -startYear)*year;
leapDay = (endYear - startYear)/4*day;
long yearEnd=y+yearStart+leapDay;
long [] longs=new long [n];
for(int i=0;i<n;i++) {
longs [i]=(long)(Math.random()*(yearEnd-yearStart) +yearStart);
}
return longs;
}
由于不管是 Date calendaer 这两个类对于getTime(); 都是毫秒计时所以以上处理全是折算成毫秒。由于时区 东八区减去八个小时 之后就是之前那道题的算法啦 只是返回值是一个数组