java生成随机数、四舍五入、当前时间的方法
(1)生成随机数:
java中Math类中有个方法random()用于生成0.0-1.0之间的双精度小数。但有时我们需要生成更多范围内的随机数,怎么办呢?其实在java.util.*中有个Random类,其实例有很多方法可以运用:nextInt(a+1)用于返回0-a之间的整数,不包括a。其他还有nextDouble(),nextLong()等方法,如果参数为空则返回任意数。
例如:
double a=Math.random();//生成0-1之间的小数
Random ra=new Random();
int b=ra.nextInt(1000);//生成0-999之间不包括999的整数
(2)四舍五入:
Math类同样有个方法round()用于四舍五入为整数。但怎么能保留指定位数的小数呢?用到了BigDecimal类,方法编写如下,v表示待精度处理的小数,rr表示保留的小数位数。
public double getRound(double v,int rr){
BigDecimal b=new BigDecimal(Double.toString(v));
BigDecimal one=new BigDecimal(1);
return b.divide(one,rr,BigDecimal.ROUND_HALF_UP).doubleValue();
}
例如:
getRound(33.3333,2)=33.33
(3)当前日期:
大家一开始想到的便是Date类,但Date类是比较麻烦的。Date有几个重要的方法,其构造函数:
Data da=new Data();参数为空,表示现在的时间
或是Data da=New Data(毫秒数);表述自1970年1月1日0点0分0秒时+参数值得到的日期
几个重要的方法:
toString():字符串化
getTime(): 返回自格林尼治时间起至现在的差值(以毫秒数计算)
setTime();本对象自格林尼治时间起的毫秒数所对应的日期
下面是得到日期过程:
Date d=new Date();
System.out.print(d.toString());
Tue Aug 31 13:09:21 CST 2010
不过大家可以看出这种日期格式固定死了,但可以利用subString()的方法得到上面的年月日。下面我们说一种不利用subString()方法得到时间的方法,用到了calendar日历类的子类Gregorian Calendar。
几个重要的方法:
getTime():得到当前的日期,是Date类型的,与上面的结果相同。
set(年,月,日,时,分,秒):按固定日期设定当前日期值。
get(叙述式):按叙述式取出所需时间。这是我们将要讲的。
其实叙述是就是类变量,有如下几个:
YEAR、MONTH、WEEK_OF_YEAR、DAY_OF_MONTH、DAY_OF_YEAR、DAY_OF_WEEK、AM_PM、HOUR、HOUR_OF_DAY、MINUTE、SECOND、MILLISECOND,例如得到时间可以表示如下:
GregorianCalendar gc=New Gregorian Calendar();
int year=gc.get(Calendar.YEAR);//取出当前年份
以此类推按照叙述式取出所需的日期格式。各叙述式的意思表面明了,个别模糊的可以查询API。