您的位置:首页 > 编程语言 > Java开发

Java在一定范围随机生成日期和经纬度

2015-10-04 14:53 731 查看
1.随机生成日期,格式为yyyy-MM-dd HH:mm:ss

public static String randomDate(String beginDate, String endDate) {
try {
SimpleDateFormat format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
Date start = format.parse(beginDate);// 构造开始日期
Date end = format.parse(endDate);// 构造结束日期
// getTime()表示返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
if (start.getTime() >= end.getTime()) {
return null;
}
long date = random(start.getTime(), end.getTime());
Date result = new Date(date);
return format.format(result);
} catch (ParseException e) {
e.printStackTrace();
}
return null;

}
private static long random(long begin, long end) {
long rtn = begin + (long) (Math.random() * (end - begin));
// 如果返回的是开始时间和结束时间,则递归调用本函数查找随机值
if (rtn == begin || rtn == end) {
return random(begin, end);
}
return rtn;
}


2.在矩形范围内随机生成经纬度
public static String randomLonLat(double min1, double max1,double min2, double max2) {
Random random = new Random();
BigDecimal db = new BigDecimal(Math.random() * (max1 - min1) + min1);
String lon = db.setScale(6, BigDecimal.ROUND_HALF_UP).toString();//小数后6位
db = new BigDecimal(Math.random() * (max2 - min2) + min2);
String lat = db.setScale(6, BigDecimal.ROUND_HALF_UP).toString();
return lon+" "+lat;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java