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;
}
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;
}
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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统