java day14 常用類BigInteger類,BigDecimal類,Date類,DateFormat類,Calendar類
阿新 • • 發佈:2018-12-13
BigInteger類
package com.heima.otherclass; import java.math.BigInteger; public class Demo4_BigInteger { /** ** A:BigInteger的概述 * 可以讓超過Integer範圍內的資料進行運算 * B:構造方法 * public BigInteger(String val) * C:成員方法 * 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 static void main(String[] args) { //long num = 123456789098765432123L; //String s = "123456789098765432123"; BigInteger bi1 = new BigInteger("100"); BigInteger bi2 = new BigInteger("2"); System.out.println(bi1.add(bi2)); //+ System.out.println(bi1.subtract(bi2)); //- System.out.println(bi1.multiply(bi2)); //* System.out.println(bi1.divide(bi2)); ///(除) BigInteger[] arr = bi1.divideAndRemainder(bi2); //取除數和餘數 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
BigDecimal類
package com.heima.otherclass; import java.math.BigDecimal; public class Demo5_BigDecimal { /** * * A:BigDecimal的概述 * 由於在運算的時候,float型別和double很容易丟失精度,演示案例。 * 所以,為了能精確的表示、計算浮點數,Java提供了BigDecimal * 不可變的、任意精度的有符號十進位制數。 * B:構造方法 * public BigDecimal(String val) * C:成員方法 * public BigDecimal add(BigDecimal augend) * public BigDecimal subtract(BigDecimal subtrahend) * public BigDecimal multiply(BigDecimal multiplicand) * public BigDecimal divide(BigDecimal divisor) * D:案例演示 * BigDecimal類的構造方法和成員方法使用 十進位制表示1/3 0.3333333333333333333333333333333333333333 */ public static void main(String[] args) { //System.out.println(2.0 - 1.1); /*BigDecimal bd1 = new BigDecimal(2.0); //這種方式在開發中不推薦,因為不夠精確 BigDecimal bd2 = new BigDecimal(1.1); System.out.println(bd1.subtract(bd2));*/ /*BigDecimal bd1 = new BigDecimal("2.0"); //通過構造中傳入字串的方式,開發時推薦 BigDecimal bd2 = new BigDecimal("1.1"); System.out.println(bd1.subtract(bd2));*/ BigDecimal bd1 = BigDecimal.valueOf(2.0); //這種方式在開發中也是推薦的 BigDecimal bd2 = BigDecimal.valueOf(1.1); System.out.println(bd1.subtract(bd2)); } }
package com.heima.otherclass; import java.util.Date; public class Demo6_Date { /** * * A:Date類的概述是util包下的,不能匯入sql包的 * 類 Date 表示特定的瞬間,精確到毫秒。 * B:構造方法 * public Date() * public Date(long date) * C:成員方法 * public long getTime() * public void setTime(long time) */ public static void main(String[] args) { //demo1(); //demo2(); Date d1 = new Date(); d1.setTime(1000); //設定毫秒值,改變時間物件 System.out.println(d1); } public static void demo2() { Date d1 = new Date(); System.out.println(d1.getTime()); //通過時間物件獲取毫秒值 System.out.println(System.currentTimeMillis()); //通過系統類的方法獲取當前時間毫秒值 } public static void demo1() { Date d1 = new Date(); //如果沒有傳引數代表的是當前時間 System.out.println(d1); Date d2 = new Date(0); //如果構造方法中引數傳為0代表的是1970年1月1日 System.out.println(d2); //通過毫秒值建立時間物件 } }
Date類
package com.heima.otherclass;
import java.util.Date;
public class Demo6_Date {
/**
* * A:Date類的概述是util包下的,不能匯入sql包的
* 類 Date 表示特定的瞬間,精確到毫秒。
* B:構造方法
* public Date()
* public Date(long date)
* C:成員方法
* public long getTime()
* public void setTime(long time)
*/
public static void main(String[] args) {
//demo1();
//demo2();
Date d1 = new Date();
d1.setTime(1000); //設定毫秒值,改變時間物件
System.out.println(d1);
}
public static void demo2() {
Date d1 = new Date();
System.out.println(d1.getTime()); //通過時間物件獲取毫秒值
System.out.println(System.currentTimeMillis()); //通過系統類的方法獲取當前時間毫秒值
}
public static void demo1() {
Date d1 = new Date(); //如果沒有傳引數代表的是當前時間
System.out.println(d1);
Date d2 = new Date(0); //如果構造方法中引數傳為0代表的是1970年1月1日
System.out.println(d2); //通過毫秒值建立時間物件
}
}
DateFormat類
package com.heima.otherclass;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo7_SimpleDateFormat {
/**
* * A:DateFormat類的概述
* DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。是抽象類,所以使用其子類SimpleDateFormat
* B:SimpleDateFormat構造方法
* public SimpleDateFormat()
* public SimpleDateFormat(String pattern)
* C:成員方法
* public final String format(Date date)
* public Date parse(String source)
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
//demo1();
//demo2();
//demo3();
//將時間字串轉換成日期物件
String str = "2000年08月08日 08:08:08";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d = sdf.parse(str); //將時間字串轉換成日期物件
System.out.println(d);
}
public static void demo3() {
Date d = new Date(); //獲取當前時間物件
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//建立日期格式化類物件
System.out.println(sdf.format(d)); //將日期物件轉換為字串
}
public static void demo2() {
Date d = new Date(); //獲取當前時間物件
SimpleDateFormat sdf = new SimpleDateFormat(); //建立日期格式化類物件
System.out.println(sdf.format(d)); //88-6-6 下午9:31
}
public static void demo1() {
//DateFormat df = new DateFormat(); //DateFormat是抽象類,不允許例項化
//DateFormat df1 = new SimpleDateFormat();
DateFormat df1 = DateFormat.getDateInstance(); //相當於父類引用指向子類物件,右邊的方法返回一個子類物件
}
}
Calendar類
package com.heima.otherclass;
import java.util.Calendar;
public class Demo8_Calendar {
/**
* * A:Calendar類的概述
* Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日曆欄位之間的轉換提供了一些方法,併為操作日曆欄位(例如獲得下星期的日期)提供了一些方法。
* B:成員方法
* public static Calendar getInstance()
* public int get(int field)
*/
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); //父類引用指向子類物件
//System.out.println(c); //證明重寫了toString方法列印了物件中所有的屬性
System.out.println(c.get(Calendar.YEAR)); //通過欄位獲取對應的值
System.out.println(c.get(Calendar.MONTH));
}
}
package com.heima.otherclass;
import java.util.Calendar;
public class Demo9_Calendar {
/**
* * A:Calendar類的概述
* Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日曆欄位之間的轉換提供了一些方法,併為操作日曆欄位(例如獲得下星期的日期)提供了一些方法。
* B:成員方法
* public static Calendar getInstance()
* public int get(int field)
* C:成員方法
* public void add(int field,int amount)
* public final void set(int year,int month,int date)
* D:案例演示
* Calendar類的成員方法使用
*/
public static void main(String[] args) {
//demo1();
Calendar c = Calendar.getInstance(); //父類引用指向子類物件
//c.add(Calendar.MONTH, -1); //對指定的欄位進行向前減或向後加
//c.set(Calendar.YEAR, 2000); //修改指定欄位
c.set(2000, 7, 8);
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
}
public static void demo1() {
Calendar c = Calendar.getInstance(); //父類引用指向子類物件
//System.out.println(c);
System.out.println(c.get(Calendar.YEAR)); //通過欄位獲取年
System.out.println(c.get(Calendar.MONTH)); //通過欄位後期月,但是月是從0開始編號的
System.out.println(c.get(Calendar.DAY_OF_MONTH));//月中的第幾天
System.out.println(c.get(Calendar.DAY_OF_WEEK));//週日是第一天,週六是最後一天
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
}
/*
* 將星期儲存表中進行查表
* 1,返回值型別String
* 2,引數列表int week
*/
public static String getWeek(int week) {
String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
}
/*
* 如果是個數數字前面補0
* 1,返回值型別String型別
* 2,引數列表,int num
*/
public static String getNum(int num) {
/*if(num > 9) {
return "" + num;
}else {
return "0" + num;
}*/
return num > 9 ? "" + num : "0" + num;
}
}
package com.heima.test;
import java.util.Calendar;
import java.util.Scanner;
public class Test3 {
/**
* * A:案例演示
* 需求:鍵盤錄入任意一個年份,判斷該年是閏年還是平年
* Calendar c = Calendar.getInstance();
*
* 分析:
* 1,鍵盤錄入年Scanner
* 2,建立Calendar c = Calendar.getInstance();
* 3,通過set方法設定為那一年的3月1日
* 4,將日向前減去1
* 5,判斷日是多少天,如果是29天返回true否則返回false
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入年份,判斷該年份是閏年還是平年:");
//int year = sc.nextInt();
String line = sc.nextLine(); //錄入數字字串
int year = Integer.parseInt(line); //將數字字串轉換成數字
boolean b = getYear(year);
System.out.println(b);
}
private static boolean getYear(int year) {
//2,建立Calendar c = Calendar.getInstance();
Calendar c = Calendar.getInstance();
//設定為那一年的3月1日
c.set(year, 2, 1);
//將日向前減去1
c.add(Calendar.DAY_OF_MONTH, -1);
//判斷是否是29天
return c.get(Calendar.DAY_OF_MONTH) == 29;
}
}