zoukankan      html  css  js  c++  java
  • java学习day12--API-SimpleDateFormat--BigDecimal/BigInteger类

    日期工具类SimpleDateFormat

    1概念

    ​ 用来把Date类型和String类型的数据进行转换.

    SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。

    2创建对象

    new SimpleDateFormat(String parm);
    parm为一个字符串,表示格式.
    

    时间模式

    字母 时间元素 表示 示例
    y Year 1996; 96
    M 年中的月份 Month July; Jul; 07
    D 年中的天数 Number 200
    d 月份中的天数 Number 31;30;28;29
    H 一天中的小时(24小时制) Number 23
    h 天中的小时(12小时制) Number 11
    m 分钟数 Number 60
    s 分钟中的秒数 Number 60
    S 毫秒数 Number 1000

    3常见方法

    方法名 功能
    format(Date) 把Date格式化成字符串
    parse(String) 把String解析成Date

    4 测试案例

    package cn.tedu.number;
    		import java.text.ParseException;
    		import java.text.SimpleDateFormat;
    		import java.util.Date;
    		import java.util.Scanner;
    		//这个类用来测试  存活天数
    		public class Test3_SDformat {
    			public static void main(String[] args) throws Exception {
    		//		1、接收用户输入的出生日期(String类型)
    				String birthday = new Scanner(System.in).nextLine() ; 
    				
    		//		2、把String类型的日期  转成  Date类型(需要工具类SimpleDateFormat)
    				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    				Date date = sdf.parse(birthday) ;
    				
    		//		3、获取出生时的毫秒值(getTime)  
    				long birth = date.getTime() ;
    		//		4、获取当前的毫秒值 
    				long now = System.currentTimeMillis() ;
    		//		5、输出时间差(换算成天。ms) 
    				System.out.println(  (now-birth)/1000/60/60/24    ) ;
    				
    			}
    		}
    

    BigDecimal/BigInteger类

    1 概述

    ​ --1、在java运算中,浮点数运算会不精确。解决方案就是BigDecimal。
    ​ --2、在java运算中,可能会有超大整数运算,超出了long范围。解决方案就是BigInteger。

    2 创建对象

    BigDecimal(double val) 
    BigDecimal(String val) //建议使用 String类型  的构造方法
    

    3 常用方法

    BigDecimal add(BigDecimal augend)  //加法运算:
    BigDecimal multiply(BigDecimal multiplicand)  //乘法运算:
    BigDecimal subtract(BigDecimal subtrahend)  //减法运算:
    divide(BigDecimal bd,保留位数,舍入方式)//除不尽时使用 除法运算:
    BigDecimal setScale(保留位数,舍入方式)//同上
    BigDecimal pow(int n):求数据的几次幂   
    

    4 测试案例

    package cn.tedu.number;
    
    		import java.math.BigDecimal;
    		import java.util.Scanner;
    
    		//这个类用来测试 浮点数运算
    		public class Test4_Double {
    			public static void main(String[] args) {
    				method();//暴露问题
    				method2();// 解决浮点运算不精确的现象 BigDecimal
    			}
    
    			public static void method2() {
    				// 1、接收用户输入的两个小数
    				double a = new Scanner(System.in).nextDouble();
    				double b = new Scanner(System.in).nextDouble();
    				//2、创建对象 --  建议使用 String类型  的构造方法
    				BigDecimal bd1 = new BigDecimal(a+"");
    				BigDecimal bd2 = new BigDecimal(b+"");
    				// 3、做运算
    				BigDecimal bd3 ; //定义bd3保存计算结果
    				bd3 = bd1.add(bd2) ;//加法
    				System.out.println(bd3);
    				bd3 = bd1.subtract(bd2) ;//减法
    				System.out.println(bd3);
    				bd3 = bd1.multiply(bd2) ;//乘法
    				System.out.println(bd3);
    			//		bd3 = bd1.divide(bd2) ;//除法java.lang.ArithmeticException: 除不尽
    				//-divide(a,b,c)--a是指要运算的对象名  ---b是指要保留几位小数 ---c是指舍入方式
    				try {
                    bd3 = bd1.divide(bd2,3,BigDecimal.ROUND_HALF_UP) ;//除法
                        System.out.println(bd3);
                    } catch (Exception e) {
    				System.out.println("除数不能为0");
    					}
    				
    			}
    
    			public static void method() {
    				// 1、接收用户输入的两个小数
    				double a = new Scanner(System.in).nextDouble();
    				double b = new Scanner(System.in).nextDouble();
    
    				// 2、做运算
    				System.out.println(a + b);// 不精确
    				System.out.println(a - b);// 不精确
    				System.out.println(a * b);// 不精确
    				System.out.println(a / b);// 不精确
    
    			}
    		}
    
  • 相关阅读:
    Pulp之四:其它应用样例(1)-一般的整数规划问题 (设置目标约束函数)
    Pulp之三:官网上的应用样例(4)-Blending Problem (混合问题)
    Pulp之三:官网上的应用样例(3)-Sudoku Problem by LP (数独问题)
    Pulp之三:官网上的应用样例(2)-A Set Partitioning Problem (集合划分问题)
    list转换dict的方式以及zip的用法
    Pulp之三:官网上的应用样例(1)-The_Whiskas_Problem (猫粮配料比例问题)
    Pulp之二:Pulp中几个重要的概念
    一个简单有趣的题(4个变量找出取走的数)
    Java之父 James Gosling 发表博文 《Too Soon》纪念乔布斯。
    第01课 OpenGL窗口(1)
  • 原文地址:https://www.cnblogs.com/liqbk/p/12902469.html
Copyright © 2011-2022 走看看