常用类"三"(BigInteger,BigDecimal,Date)

BigInteger类同Integer类一样,都是处理整数的包装类,它们的区别在于,Integer处理的整数范围:-2147483648~2147483647,当超出这个范围时,Integer就处理不了,此时就需要使用BigInteger来处理了。
常用构造方法:

BigInteger (byte[] val)
BigInteger (String val)

代码实现:

        byte[] val={0,0,1,0};
        BigInteger bi=new BigInteger(val);
        System.out.println(bi);

        BigInteger bi0=new BigInteger("999");
        System.out.println(bi0);

常用方法和代码:

/*
 * public BigInteger add(BigInteger val):加
 * public BigInteger subtract(BigInteger val):减
 * public BigInteger multiply(BigInteger val):乘
 * public BigInteger divide(BigInteger val):除
 * public BigInteger[] divideAndRemainder(BigInteger val)
 * :返回商和余数的数组
 */
public class BigIntegerDo {
    public static void main(String[] args) {
        BigInteger b1=new BigInteger("100");
        BigInteger b2=new BigInteger("55");

//public BigInteger add(BigInteger val)
        System.out.println("add="+b1.add(b2));//155

//public BigInteger subtract(BigInteger val)
        System.out.println("substact="+b1.subtract(b2));//45

//   public BigInteger multiply(BigInteger val)
        System.out.println("multiply="+b1.multiply(b2));//5500

//public BigInteger divide(BigInteger val)
        System.out.println("divide="+b1.divide(b2));//1

//public BigInteger[] divideAndRemainder(BigInteger val)
        BigInteger[] b3=b1.divideAndRemainder(b2);
        System.out.println("商="+b3[0]);//1
        System.out.println("余数="+b3[1]);//45

BigDecimal:由于在运算时,float类型和double很容易丢失精度。对一些严格的项目来说,比如金融,这种精度丢失是不能容忍的。所以java就提供BigDecimal类,用来操作对精度要求高的数据;
构造方法:

//以BigInteger类为参数
    public BigDecimal(BigInteger val);
//以double类型为参数
    public BigDecimal(double val);
//以int类型为参数
    public BigDecimal(int val);
//以long类型为参数
    public BigDecimal(long val);
//以字符串为参数
    public BigDecimal(String val);

常用方法:

/*
 * public  BigDecimal add(BigDecimal augend);
 * public BigDecimal subtract(BigDecimal subtractend)
 * public BigDecimal multiply(BigDecimal multiplycand);
 * public BigDecimal divide(BigDecimal divisor);
 * public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
 * divisor:除数
 * scale:要保留的位数
 * roundingMode:选择舍去的模式,一般选ROUND_HALF_UP
 */

public class BigDecimalDemo {
    public static void main(String[] args) {
        BigDecimal b1=new BigDecimal(0.9);
        BigDecimal b2=new BigDecimal(0.4);
//  加法演示:   
        System.out.println(b1.add(b2));
//* public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
                System.out.println("divide="+b1.divide(b2,2,BigDecimal.ROUND_HALF_UP));
    }

}

Date:表示特定的瞬间,精确到毫秒
构造方法:

//根据当前默认时间的毫秒值创建日期对象
public Date();
//根据给定的毫秒值创建日期对象
public  Date(long date);

常用方法:

public long getTime();//获取当前之间的毫秒值
public void setTime(long time);//根据给定的毫秒值设置时间
public String toString();//把Date对象转换成String对象
    public static void main(String[] args) {
        Date d = new Date();
        System.out.println(d);
//      获取毫秒值
        System.out.println(d.getTime());

        //根据给定的毫秒值设置时间
        long time =2147483649L;
        d.setTime(time);
        System.out.println("d="+d);

        String s=d.toString();
        System.out.println(s);
    }

DateFormat:是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化.
DateFormat:可以进行日期和字符串的格式化和解析,但是由于是抽象的,所以使用具体子类SimpleDateFormat

SimpleDateFormat的构造函数:

public SimpleDateFormat():以默认的模式
public SimpleDateFormat(String pattern):以给定的模式
pattern的对应表:
年y,月M,日d,时H,分m,秒s.

1:把时间格式化为时间:

    public static void main(String[] args) {
        //获取当前时间的毫秒值
        Date d=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat();
        //调用SimpleDateFormat的方法或父类方法把时间格式为指定模式的时间
        String s=sdf.format(d);
        System.out.println(d);//Mon MMM 06 13:49:15 CST 2005(默认模式)

        //指定模式
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String s1=sdf1.format(d);//format方法是DateFormat类中格式化时间的
        System.out.println(s1);
    }

2:把日期解析成时间

//假如把2000年11月11日 11时11分11秒解析成时间
String s="2000年11月11日 11时11分11秒";
//创建SimpleDateFormat
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//  然后调用给定模式类中的解析方法parse(),把String类型的日期装换成Date类型
        Date ds=sdf1.parse(s);//parse()方法是DateFormat中解析时间的方法
        System.out.println(ds);

Calendar:

/*
 * Calendar:此抽象类为特定瞬间与异族如YEAR,MONTH,HOUR等日历字段之间的转换提供
 * 方法,并为日历字段提供方法
 * public int get(int field):返回给定日历字段的值,
 * 日历类中的每个日历字段都是静态的成员变量,并且是int类型
 */
public class CalendarDemo {
    public static void main(String[] args) {
        //创建日历对象时,日历字段已由当前日期和时间初始化了。
        Calendar now=Calendar.getInstance();//通过静态方法获取子类对象
        //获取年
        int year=now.get(Calendar.YEAR);//get的参数全部是静态成员变量
        //获取月
        int month=now.get(Calendar.MONTH);
        //获取日
        int day=now.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年"+(month+1)+"月"+day+"日");
        //month是从0开始的,需要+1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值