Java中BigInteger类、BigDecimal类、Date/DateFormat类和Calendar类的概述

1:BigDecimal
(1)浮点数据做运算,会丢失精度。所以,针对浮点数据的操作建议采用BigDecimal。(金融相关的项目)
(2)构造方法
A:BigDecimal(String s)
(3)成员方法:

A:加

                    BigInteger类对象1.add(BigInteger类对象2);

B:减

                     BigInteger类对象1.subtract(BigInteger类对象2);

C:乘

                     BigInteger类对象1.multiply(BigInteger类对象2);

D:除

                      BigInteger类对象1.divide(BigInteger类对象2);

7:Date/DateFormat
(1)Date是日期类,可以精确到毫秒。
A:构造方法
Date()
Date(long time)
B:成员方法
getTime()
setTime(long time)
C:日期和毫秒值的相互转换

   举例:你来这个世界多少天了

                   import java.text.ParseException;
                   import java.text.SimpleDateFormat;
                   import java.util.Date;
                   import java.util.Scanner;
                    public class DateDemo {
                    public static void main(String[] args) throws ParseException {
                        Scanner sc = new Scanner(System.in);
                        System.out.println("请输入您的出生日期:(如1995-11-23)");
                        String birthday = sc.nextLine();
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                        Date d1 = sdf.parse(birthday);
                        long time = d1.getTime();
                        Date d2 = new Date();
                        long time2 = d2.getTime();
                        int days = (int)((time2-time)/1000/60/60/24);
                        System.out.println("您来到这个世界已经有"+days+"天了!");
                         }
                } 

(2)DateFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDateFormat
A:SimpleDateFormat(String pattern) 给定模式
yyyy-MM-dd HH:mm:ss
B:日期和字符串的转换
a:Date -- String
format()

b:String -- Date
parse()
C:举例:
制作了一个针对日期操作的工具类。
                package cn.itcast_04;
                        import java.text.ParseException;
                        import java.text.SimpleDateFormat;
                        import java.util.Date;
            /**
                     * 这是日期和字符串相互转换的工具类
                     * @author 夜斗
                     * @version V2.0
                     *
                     */
                        public class DateUtil {
                private DateUtil() {
                }
            /**
             * 这个方法的作用就是把日期转换成一个字符串
             * @param d
             * 被转换的日期对象
             * @param format
             * 传递过来的要转换的格式
             * @return
             * 格式化后的字符串
             */
                public static String dateToString(Date d,String format){
             /*SimpleDateFormat sdf = new SimpleDateFormat(format);
             String s = sdf.format(d);
             return s;*/
             return new SimpleDateFormat(format).format(d);
                }
                /**
                 * 这个方法的作用就是把字符串转换成一个日期
                 * @param s
                 * 被解析的字符串
                 * @param format
                 * 传递过来的要转换的格式
                 * @return
                 * 解析后的日期对象
                 * @throws ParseException
                 */
                   public static Date stringToDate(String s,String format) throws ParseException{
                     //类似于上一方法
            return new SimpleDateFormat(format).parse(s);
                    }
                    }

8:Calendar
(1)日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
(2)如何得到一个日历对象呢?
Calendar rightNow = Calendar.getInstance();
本质返回的是子类对象
(3)成员方法

A:根据日历字段得到对应的值

                    Calendar类对象.get(Calendar.YEAR);           //获取年

                    Calendar类对象.get(Calendar.MONTH);           //获取月     MONTH从0开始,所以还需要+1

                    Calendar类对象.get(Calendar.DATE);           //获取日期

B:根据日历字段和一个正负数确定是添加还是减去对应日历字段的值

                C:设置日历对象的年月日

                    举例:

                    import java.util.Calendar;
                    public class CalendarDemo {
                    public static void main(String[] args) {
Calendar c = Calendar.getInstance();
                //获取年
                int year = c.get(Calendar.YEAR);
                //获取月
                int month = c.get(Calendar.MONTH);
                //获取日
                int day = c.get(Calendar.DATE);
                System.out.println(year+"年"+(month+1)+"月"+day+"日");
                //三年前的今天
                c.add(Calendar.YEAR, -3);
                //获取年
                year = c.get(Calendar.YEAR);
                //获取月
                 month = c.get(Calendar.MONTH);
                //获取日
                day = c.get(Calendar.DATE);
                System.out.println(year+"年"+(month+1)+"月"+day+"日");
                //五年后的10天前
                c.add(Calendar.YEAR, 10);
                c.add(Calendar.DATE, -10);
                //获取年
                 year = c.get(Calendar.YEAR);
                   //获取月
                 month = c.get(Calendar.MONTH);
                //获取日
                day = c.get(Calendar.DATE);
                System.out.println(year+"年"+(month+1)+"月"+day+"日");
                c.set(2066, 5, 6);
                //获取年
                 year = c.get(Calendar.YEAR);
                //获取月
                 month = c.get(Calendar.MONTH);
                //获取日
                 day = c.get(Calendar.DATE);
                System.out.println(year+"年"+(month+1)+"月"+day+"日");
                        }
                            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值