ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-09-10 Math&Date&Calendar类

2021-09-10 19:34:29  阅读:157  来源: 互联网

标签:10 String double 09 获取 2021 Date Calendar Math


一、java.lang.Math

java.lang.Math底层封装了很多与数学相关的属性和方法,使用它可以在一定基础上避免程序员自行研发数学方面的代码。


1、Math的两个属性:

①圆周率PI ② 科学计数法E
都是静态常量,可以直接用Math.调用。

2、Math的方法:

1、 Math.abs() :绝对值
2、 Math.max() :最大值
      Math.min() :最小值
3、 Math.random() :随机数
4、 Math.ceil() :向上取整
      Math.floor() :向下取整
5、 [long] round()四舍五入
6、 [double] pow(double a,double b) 求a的b次幂
7、 [double] sqrt(double a)开平方
8、 [double] cbrt(double a)开立方

3、BigDecimal:

为了解决浮点型在计算过程中产生精度丢失问题而使用的类。


BigDecimal构造方法有重载:

1、当( )内为double类型数据时:
即、BigDecimal b = new BigDecimal(double类型);
计算结果会更加不精确= =!

2、当( )内为String类型数据时:
即、BigDecimal b = new BigDecimal(String类型);
计算结果会很精确。
可以通过拼接空字符串""+ 或 String.valueOf实现double到String的转换。


BigDecimal的运算方法:

加法:add()
减法:subtract()
乘法:multiply()
除法:divide(),当除不尽时会抛出算术异常ArithmeticException。
            解决方案:使用重载的divide()方法。
            第一个参数是除数,第二个参数是保留的小数位数,第三个参数是舍入模式。

二、java.util.Date:

需要创建对象的引用 Date date = new Date();
直接输出date : 获取默认系统时间 格林威治时间


1、date.调用常用方法:

1、getTime() 获取1970-1-1零点到现在的毫秒值


2、date.调用过时方法:

1、getYear() 获取年份 获取1900年到现在的年份
2、getMonth() 获取月份 获取自然月-1
3、getDate() 获取日期
4、getDay() 获取星期几
5、getHours() 获取小时
6、getMinutes() 获取分钟
7、getSeconds() 获取秒钟
8、toLocaleString() 换成格式:年月日时分秒

需要注意的是:在Date和Calendar类中的month/MONTH 显示的是对应月份的下标(即从0开始,0-11),在调用或输出时根据情况±1。


3、SimpleDateFormat:

两种数据格式的相互转换:String ←→ Date:

创建SimpleDateFormat对象,传递参数为日期的格式。(y年,M月,d日,H时,m分,s秒 -和:是分隔符,判断不符合格式会抛出异常。)

 [Date] parse(String str)将字符串解析成Date类型
 [String] format(Date date)将Date类型转化为字符串

练习:接收用户输入的日期,计算距离现在有多少天

    //练习:接收用户输入的日期,计算距离现在有多少天
    public static void method2(String str) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date datein = sdf.parse(str);
        System.out.println("获取到的生日是:"+sdf.format(datein));
        long secondin = datein.getTime();
        System.out.println("出生时的毫秒值:"+secondin);
        Date datenow = new Date();
        long nowsecond = datenow.getTime();
        System.out.println("当前维度毫秒值:"+nowsecond);
        long days = (nowsecond-secondin)/24/60/60/1000;
        System.out.println("存活在世的天数:"+days);

    }


三、java.util.Calendar日历类

Calendar类出现于Date类之后,替换掉了许多Date方法,该类将所有可能用到使用到的时间信息都封装为静态成员变量,方便使用。

1、Calendar类创建对象

Calendar类是一个抽象类,无法直接创建对象,该类提供了一个静态方法getInstance(),用于返回Calendar的子类对象,该子类对象是根据当前默认时区和语言环境所获取的。我们国家使用的是java.util.GregorianCalendar阳历。

直接使用类名或对象名调用,获取到的是Calendar类中定义好的静态常量的值,需要使用对象调用get()方法才能获取到该对象所表示的日历中对应的属性值。

        Calendar c = Calendar.getInstance();
        System.out.println(c);
        /*输出内容是:
        [time=1631265613352,areFieldsSet=true,areAllFieldsSet=true,
        lenient=true,zone=sun.util.calendar.ZoneInfo
        [id="Asia/Shanghai",offset=28800000,dstSavings=0,
        useDaylight=false,transitions=29,lastRule=null],
        firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
        YEAR=2021,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=2,
        DAY_OF_MONTH=10,DAY_OF_YEAR=253,DAY_OF_WEEK=6,
        DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,
        MINUTE=20,SECOND=13,MILLISECOND=352,ZONE_OFFSET=28800000,DST_OFFSET=0]
         */

2、Calendar类的方法:

1、[int] get(int field) 返回给定义日历字段的值
2、[void] set(int fields,int value) 将指定字段修改为指定字段的值
3、set方法的重载,可以一次性设置多个属性值
4、[void] add(int field,int amount)将给定字段增加或减少指定的值,具体增还是减由第二个参数amount的±决定

标签:10,String,double,09,获取,2021,Date,Calendar,Math
来源: https://blog.csdn.net/zz2097831284/article/details/120228168

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有