主要思路:
键盘键入两个日期
Scanner sc = new Scanner(System.in);
System.out.println("输入yyyy/MM/dd模式");
String begTime = sc.nextLine();
String endTime = sc.nextLine();
String 转换成 Date型
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date start = format.parse(beginDate);
Date end = format.parse(endDate);
getTime()得到与1970.1.1相隔的时间,两日期之间间隔用long记录
long date = random(start.getTime(),end.getTime());
产生随机数的过程
long rtn = begin + (long)(Math.random() * (end - begin));
long型数字转换成date
Date sr = new Date(date);
这是整体思路,具体代码为:
package com.digit;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class TestDate {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入yyyy-MM-dd模式");
String begTime = sc.nextLine();
String endTime = sc.nextLine();
Date randomDate = randomDate(begTime,endTime);
System.out.println(randomDate.toString());
System.out.println(randomDate);
}
private static Date randomDate(String beginDate, String endDate) {
// TODO Auto-generated method stub
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date start = format.parse(beginDate);
Date end = format.parse(endDate);
if (start.getTime() >= end.getTime()){
return null;
}
long date = random(start.getTime(),end.getTime());
System.out.println(date);
Date sr = new Date(date);
System.out.println(sr);
return new Date(date);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
private static long random(long begin, long end) {
// TODO Auto-generated method stub
long rtn = begin + (long)(Math.random() * (end - begin));
if(rtn == begin||rtn == end){
return random(begin, end);
}
return rtn;
}
}