Java常用工具类(后续完善)

一:Math数学类

Math类是一个final类,其下面定义的方法都是静态的,所以我们可以直接使用类名.方法名直接调用此方法。

  1. abs():求绝对值
  2. sqrt():求给定平方根
  3. pow():求n次幂
  4. cei():求一个比指定数大的最小整数(一般用于分页操作)
  5. floor():求一个比指定数小的最大整数
  6. round:求一个数的四舍五入,其实就是将次数加0.5再向下取整(float型返回的是int型吗,而double返回的是long型)
  7. random():参数一个【0,1)的伪随机数
  8. PI:常量值
  9. sin():给定角度的正弦值
  10. max():两个数的最大值
  11. min(): 两个数的最小值
public class TestMath {
    public static void main(String[] args){
        //1.求圆周率
        double pi = Math.PI;
        System.out.println("pi = " + pi);
        //2.求一个数的绝对值
        int abs = Math.abs(-8);
        System.out.println("abs = " + abs);
        //3.求指定数的N次幂
        double pow = Math.pow(2, 3);
        System.out.println("pow = " + pow);
        //4.求指定数的平方根
        double sqrt = Math.sqrt(3);
        System.out.println("sqrt = " + sqrt);
        //5.产生一个【0,1)区间的随机小数
        double random = Math.random();
        System.out.println("random = " + random);
        //6。求两个数的最大值和最小值
        int max = Math.max(2, 14);
        System.out.println("max = " + max);
        int min = Math.min(3, 2);
        System.out.println("min = " + min);
        //7.求一个小数的四舍五入(原则,加0.5向下取整)
        long round = Math.round(1.8);
        System.out.println("round = " + round);
        //8.返回比指定数大的最小整数
        double ceil = Math.ceil(3.2);
        System.out.println("ceil = " + ceil);
        //9.返回比指定数小的最大整数
        double floor = Math.floor(1.1);
        System.out.println("floor = " + floor);
        //10.求一个数的正弦值
        double sin = Math.sin(2.14);
        System.out.println("sin = " + sin);
    }
}

二:Random类

Random类不是不是静态类,所以使用其方法时需要先new对象出来才可以使用,此类的实例用于生成伪随机数流

  1. new Random.nextInt():产生一个随机整数
  2. new Random.nextInt(value):产生一个[0,value)范围内的整数
  3. == new Random.nextInt(m-n) + n:产生一个[n,m)区间范围内的整数==
  4. new Random.nextBoolean():产生随机的true或者false
  5. new Random.nextDouble():产生随机的【0.0,1.0)之间的双精度浮点数
  6. new Random.nextFloat(): 产生随机的【0.0,1.0)之间的单精度浮点数
  7. new Random.nextByte():返回的到byte[]数组中,其值是byte型
public class test02 {
    @Test
    public void testA(){
        //1.1) 定义romdem类对象
        Random random = new Random();
        //1.2)产生一个随机整数(在整数范围内产生随机数)
        int i = random.nextInt();
        System.out.println("i = " + i);
        //1.3) 产生一个[0,50) 的随机整数
        int i1 = random.nextInt(50);
        System.out.println("i1 = " + i1);
        //1.4) 产生一个[30,100)的随机整数
        /**
         * 思路:[n,m)
         * 1.先找到一个【0,m-n)之间的整数·
         * 2.在在这个数基础上加n就是[n,m)区间的整数
         */
        int i2 = random.nextInt(100-30);
        int a = i2 + 30;
        System.out.println("a = " + a);
    }

三:Date日期类(已过时)

此工具类也需要创建对象才可使用已被Calendar日历类取代。

  1. date.getYear():获取年 //是从1900年到现在的差值
  2. date.getMonth():获取月 //0是一月
  3. date.getDate():获取日
  4. date.getDay():获取星期 //星期天-星期六是0-6
  5. date.getHours():获取时
  6. date.getMinutes():获取分
  7. date.getSeconds():获取秒
  8. 打印可以调用日期格式化工具类SimpleDateFormat指定格式
int year = date.getYear();              //年    从1900年开始
        int month = date.getMonth();            //月     从0开始为1月
        int date1 = date.getDate();             //日
        int day = date.getDay();                //周
        int hours = date.getHours();            //时
        int minutes = date.getMinutes();        //分
        int seconds = date.getSeconds();        //秒
        System.out.println("年:" + (year + 1900));
        System.out.println("月:" + (month +1));
        System.out.println("日:" + date1);
        System.out.println("周:" + day);
        System.out.println("时:" + hours);
        System.out.println("分:" + minutes);
        System.out.println("秒:" + seconds);
        //打印当前时间的默认格式
        System.out.println(date);

四:Calendar日历工具类

此类是一个抽象类,所以我们不能new此类,但是可以通过获取对象的方法,获取此对象,即Calendar.getInstance();

  1. 首先需要获取此工具类对象: Calendar calendar = Calendar.getInstance();
  2. 获取当前日期:calendar.getTime()
  3. 可以初始化格式日期工具类对日期进行初始化:new SimpleDateFormat(“YYYY-MM-dd HH:mm:ss E”);
  4. 获取时间字段如下
//5.获得当前日期的年月日时分秒星期几
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);           //0是一月份
        int d = calendar.get(Calendar.DATE);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);
        int week = calendar.get(Calendar.DAY_OF_WEEK);      //1是星期天,7是星期六
  1. 修改日期:cakendar,set(Calendar.YEAR,2010)///calendar.set(2100,1-1,1,0,0,0)
  2. 某个字段增加相应的值:calendar.add(Calendar.Date,1)
  3. 将字符串转化为时间:
  //1.0) 定义字符串
        String str = "2014-4-15";
        //1.1 先拿到Calender对象
        Calendar calendar = Calendar.getInstance();
        //1.2) 定义格式化类,其传入的格式必须与字符串格式对应
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        //1.3) 调用方法将字符串转化为日期
        Date date = simpleDateFormat.parse(str);
        //1.4)将此日期与日历半点
        calendar.setTime(date);

实例:日历工具类的使用:求从2013年1月1日起,至2013年12月31日止,有多少个星期日

public class TestCalendarWork {
    /**
     * 案例一:求从2013年1月1日起,至2013年12月31日止,有多少个星期日(循环判断法)
     * 分析:
     * 1.获取日历类对象Calendar
     * 2.获取Date类进行格式化
     * 3.将当前时间改为2013.1.1
     * 4.定义循环,判断当前日期是否是星期天,是就打印格式化后的日期,然后计数器加一
     * 5.当前日期加一
     * 6.判断当前年份是否还是13年,不是那么就break循环
     * 7.打印计数器即可
     *
     */
    @Test
    public void testA(){
        //1.1) 获取Calendar对象
        Calendar calendar = Calendar.getInstance();
        //1.2) 定义SimpleDateFormat定义日起的格式化格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY年MM月dd日 E");
        //1.3) 将当前时间修改为2013年1月1日,月份0是一月
        calendar.set(2013,1-1,1);
        //1.4) 定义计数器
        int count = 0;
        //1.5) 循环
        while (true){
            //1.6) 判断今天是星期日吗?是那么就count++并且输出
            if (calendar.get(Calendar.DAY_OF_WEEK) == 1){
                //1.7) 打印格式化后的时间
                Date date = calendar.getTime();
                String format = simpleDateFormat.format(date);
                System.out.println(format);
                count++;

            }
            //1.7) 日期加一天
            calendar.add(Calendar.DATE ,1);
            //1.8) 判断是否还是本年
            if (!(calendar.get(Calendar.YEAR ) == 2013)){
                break;
            }
        }
        //1.9) 打印计数器
        System.out.println("星期天的天数共有: " + count);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值