太懒了,这才开始写第一篇。但不写也不行了,做练习一看答案都会,回头就忘了,就当为了加强点印象,另外也好让自己的workspace看着干净点…
很多代码都是沾的,末尾会带一点自己的感想,疑惑,有兴趣可以留言交流。
随机输出某一年的任意日期
long second = 1000;
long minute = 60*second;
long hour = minute * 60;
long day = hour*24;
long year = day * 365;
long year1995Start = (1995-1970) * year;
long leapDay = (1995-1970)/4*day; //每隔4年有一个润日
year1995Start+=leapDay;
long eightHour = hour*8; //8个小时的毫秒数,因为从0毫秒对应的是1970.1.1 08:00:00
year1995Start-=eightHour;
Date dStart = new Date(year1995Start);
System.out.println("1995年第一天:"+dStart);
long year1995End = year1995Start + year - 1;
Date dEnd = new Date(year1995End);
System.out.println("1995年最后一天:"+dEnd);
long randomTime = (long) (Math.random()*(year-1) + year1995Start);
Date dRandom = new Date(randomTime);
System.out.println("1995年这一年中的一个随机时间:" + dRandom);
感觉在随机那一块,倒数第三行, 那个 “year-1” 里的减1没什么用啊。 Math.random()不就是[0,1)不包括1么。