`
hehui082452239
  • 浏览: 10935 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

java生成随机数、四舍五入、当前时间的方法

    博客分类:
  • 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。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics