Java入门教程五(数字和日期处理)
Java 提供了處理相關問題的類,包括 Math 類、Random 類、BigInteger 類、Date 類等。
Math類
Math 類封裝了常用的數學運算,提供了基本的數學操作,如指數、對數、平方根和三角函數等。Math 類位于 java.lang 包
靜態常量
Math 類中包含 E 和 PI 兩個靜態常量,其中 E 用于記錄 e 的常量,而 PI 用于記錄圓周率的值。
System.out.println(Math.E); //2.718281828459045 System.out.println(Math.PI); //3.141592653589793最大值、最小值和絕對值
static int abs(int a) 返回 a 的絕對值 static long abs(long a) 返回 a 的絕對值 static float abs(float a) 返回 a 的絕對值 static double abs(double a) 返回 a 的絕對值 static int max(int x,int y) 返回 x 和 y 中的最大值 static double max(double x,double y) 返回 x 和 y 中的最大值 static long max(long x,long y) 返回 x 和 y 中的最大值 static float max(float x,float y) 返回 x 和 y 中的最大值 static int min(int x,int y) 返回 x 和 y 中的最小值 static long min(long x,long y) 返回 x 和 y 中的最小值 static double min(double x,double y) 返回 x 和 y 中的最小值 static float min(float x,float y) 返回 x 和 y 中的最小值求整運算
static double ceil(double a) 返回大于或等于 a 的最小整數 static double floor(double a) 返回小于或等于 a 的最大整數 static double rint(double a) 返回最接近 a 的整數值,如果有兩個同樣接近的整數,則結果取偶數 static int round(float a) 將參數加上 1/2 后返回與參數最近的整數 static long round(double a) 將參數加上 1/2 后返回與參數最近的整數,然后強制轉換為長整型三角函數運算
tatic double sin(double a) 返回角的三角正弦值,參數以孤度為單位 static double cos(double a) 返回角的三角余弦值,參數以孤度為單位 static double asin(double a) 返回一個值的反正弦值,參數域在 [-1,1],值域在 [-PI/2,PI/2] static double acos(double a) 返回一個值的反余弦值,參數域在 [-1,1],值域在 [0.0,PI] static double tan(double a) 返回角的三角正切值,參數以弧度為單位 static double atan(double a) 返回一個值的反正切值,值域在 [-PI/2,PI/2] static double toDegrees(double angrad) 將用孤度表示的角轉換為近似相等的用角度表示的角 staticdouble toRadians(double angdeg) 將用角度表示的角轉換為近似相等的用弧度表示的角指數運算
static double exp(double a) 返回 e 的 a 次冪 static double pow(double a,double b) 返回以 a 為底數,以 b 為指數的冪值 static double sqrt(double a) 返回 a 的平方根 static double cbrt(double a) 返回 a 的立方根 static double log(double a) 返回 a 的自然對數,即 lna 的值 static double log10(double a) 返回以 10 為底 a 的對數生成隨機數
生成一個指定范圍之內的隨機數字有兩種方法:一種是調用 Math 類的 random() 方法,一種是使用 Random 類
Random 類提供了豐富的隨機數生成方法,可以產生 boolean、int、long、float, byte 數組以及 double 類型的隨機數,這是它與 random() 方法最大的不同之處。random() 方法只能產生 double 類型的 0~1 的隨機數。
Random 類位于 java.util 包中,該類常用的有如下兩個構造方法。
Random():該構造方法使用一個和當前系統時間對應的數字作為種子數,然后使用這個種子數構造 Random 對象。
Random(long seed):使用單個 long 類型的參數創建一個新的隨機數生成器。
數字格式化
使用 DedmalFormat 類對結果進行格式化處理。例如,將小數位統一成 2 位,不足 2 位的以 0 補齊。DecimalFormat 是 NumberFormat 的一個子類,用于格式化十進制數字。DecimalFormat 類包含一個模式和一組符號
0 顯示數字,如果位數不夠則補 0 # 顯示數字,如果位數不夠不發生變化 . 小數分隔符 - 減號 , 組分隔符 E 分隔科學記數法中的尾數和小數 % 前綴或后綴,乘以 100 后作為百分比顯示 ? 乘以 1000 后作為千進制貨幣符顯示。用貨幣符號代替。如果雙寫,用國際貨幣符號代替; 如果出現在一個模式中,用貨幣十進制分隔符代替十進制分隔符 float f = 5487.45697; DecimalFormat df1=new DecimalFormat("0.0"); DecimalFormat df2=new DecimalFormat("#.#"); DecimalFormat df3=new DecimalFormat("000.000"); DecimalFormat df4=new DecimalFormat("###.###"); System.out.println("0.0 格式:"+df1.format(f)); //0.0 格式:5487.5 System.out.println("#.# 格式:"+df2.format(f)); //#.# 格式:5487.5 System.out.println("000.000 格式:"+df3.format(f)); //000.000 格式:5487.457 System.out.println("###.### 格式:"+df4.format(f)); //###.### 格式:5487.457時間日期的處理
java.util.Date 類和 java.util.Calendar 類。其中,Date 類主要封裝了系統的日期和時間的信息,Calendar 類則會根據系統的日歷來解釋 Date 對象
Date 類
Date 類表示系統特定的時間戳,可以精確到毫秒。Date 對象表示時間的默認順序是星期、月、日、小時、分、秒、年。Date 類有如下兩個構造方法。
Date():此種形式表示分配 Date 對象并初始化此對象,以表示分配它的時間(精確到毫秒),使用該構造方法創建的對象可以獲取本地的當前時間。
Date(long date):此種形式表示從 GMT 時間(格林尼治時間)1970 年 1 月 1 日 0 時 0 分 0 秒開始經過參數 date 指定的毫秒數。
Date 類提供了許多與日期和事件相關的方法
boolean after(Date when) 判斷此日期是否在指定日期之后 boolean before(Date when) 判斷此日期是否在指定日期之前 int compareTo(Date anotherDate) 比較兩個日期的順序 boolean equals(Object obj) 比較兩個日期的相等性 long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以來,此 Date 對象表示的毫秒數 String toString() 把此 Date 對象轉換為以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。 其中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat)Calendar 類
Calendar 類是一個抽象類,它為特定瞬間與 YEAR、MONTH、DAY_OF—MONTH、HOUR 等日歷字段之間的轉換提供了一些方法,并為操作日歷字段(如獲得下星期的日期) 提供了一些方法創建 Calendar 對象不能使用 new 關鍵字,因為 Calendar 類是一個抽象類,但是它提供了一個 getInstance() 方法來獲得 Calendar類的對象。getInstance() 方法返回一個 Calendar 對象,其日歷字段已由當前日期和時間初始化。
Calendar c=Calendar.getInstance();創建了一個 Calendar 對象后,就可以通過 Calendar 對象中的一些方法來處理日期、時間
void add(int field, int amount) 根據日歷的規則,為給定的日歷字段 field 添加或減去指定的時間量 amount boolean after(Object when) 判斷此 Calendar 表示的時間是否在指定時間 when 之后,并返回判斷結果 boolean before(Object when) 判斷此 Calendar 表示的時間是否在指定時間 when 之前,并返回判斷結果 void clear() 清空 Calendar 中的日期時間值 int compareTo(Calendar anotherCalendar) 比較兩個 Calendar 對象表示的時間值(從格林威治時間 1970 年 01 月 01 日 00 時 00 分 00 秒至現在的毫秒偏移量),大則返回 1,小則返回 -1,相等返回 0 int get(int field) 返回指定日歷字段的值 int getActualMaximum(int field) 返回指定日歷字段可能擁有的最大值 int getActualMinimum(int field) 返回指定日歷字段可能擁有的最小值 int getFirstDayOfWeek() 獲取一星期的第一天。根據不同的國家地區,返回不同的值 static Calendar getInstance() 使用默認時區和語言壞境獲得一個日歷 static Calendar getInstance(TimeZone zone) 使用指定時區和默認語言環境獲得一個日歷 static Calendar getInstance(TimeZone zone, Locale aLocale) 使用指定時區和語言環境獲得一個日歷 Date getTime() 返回一個表示此 Calendar 時間值(從格林威治時間 1970 年 01 月 01 日 00 時 00 分 00 秒至現在的毫秒偏移量)的 Date 對象 long getTimeInMillis() 返回此 Calendar 的時間值,以毫秒為單位 void set(int field, int value) 為指定的日歷字段設置給定值 void set(int year, int month, int date) 設置日歷字段 YEAR、MONTH 和 DAY_OF_MONTH 的值 void set(int year, int month, int date, int hourOfDay, int minute, int second) 設置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、 MINUTE 和 SECOND 的值 void setFirstDayOfWeek(int value) 設置一星期的第一天是哪一天 void setTimeInMillis(long millis) 用給定的 long 值設置此 Calendar 的當前時間值日期格式化
格式化日期表示將日期/時間格式轉換為預先定義的日期/時間格式。例如將日期“Fri May 18 15:46:24 CST2016” 格式轉換為 “2016-5-18 15:46:24 星期五”的格式。使用 DateFormat 類和 SimpleDateFormat 類來格式化日期
DateFormat 類
DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化并解析日期或時間。日期/時間格式化子類(如 SimpleDateFormat)允許進行格式化(也就是日期→文本)、解析(文本→日期)和標準化日期
在創建 DateFormat 對象時不能使用 new 關鍵字,而應該使用 DateFormat 類中的靜態方法 getDateInstance()
SimpleDateFormat 類
使用 DateFormat 類格式化日期/時間并不能滿足要求,那么就需要使用 DateFormat 類的子類——SimpleDateFormat
SimpleDateFormat 是一個以與語言環境有關的方式來格式化和解析日期的具體類,它允許進行格式化(日期→文本)、解析(文本→日期)和規范化。SimpleDateFormat 使得可以選擇任何用戶定義的日期/時間格式的模式
SimpleDateFormat 類主要有如下 3 種構造方法
轉載于:https://www.cnblogs.com/lilinfeng/p/10977576.html
總結
以上是生活随笔為你收集整理的Java入门教程五(数字和日期处理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流程图软件draw.io
- 下一篇: Dynamics CRM CE 怎样从