JAVA深化篇_06——常用類之Math類,Random類,Calendar日歷類
Math類
java.lang.Math提供了一系列靜態(tài)方法用于科學(xué)計算;常用方法如下:(必會方法我已高亮提示)
- abs 絕對值
- acos,asin,atan,cos,sin,tan 三角函數(shù)
- sqrt 平方根
- pow(double a, double b) a的b次冪
- max(double a, double b) 取大值
- min(double a, double b) 取小值
- ceil(double a) 大于a的最小整數(shù)
- floor(double a) 小于a的最大整數(shù)
- random() 返回 0.0 到 1.0 的隨機(jī)數(shù)
- long round(double a) double型的數(shù)據(jù)a轉(zhuǎn)換為long型(四舍五入)
- toDegrees(double angrad) 弧度->角度
- toRadians(double angdeg) 角度->弧度
【示例】Math類的常用方法
public class TestMath {
public static void main(String[ ] args) {
//取整相關(guān)操作
System.out.println(Math.ceil(3.2));
System.out.println(Math.floor(3.2));
System.out.println(Math.round(3.2));
System.out.println(Math.round(3.8));
//絕對值、開方、a的b次冪等操作
System.out.println(Math.abs(-45));
System.out.println(Math.sqrt(64));
System.out.println(Math.pow(5, 2));
System.out.println(Math.pow(2, 5));
//Math類中常用的常量
System.out.println(Math.PI);
System.out.println(Math.E);
//隨機(jī)數(shù)
System.out.println(Math.random());// [0,1)
}
}
執(zhí)行結(jié)果如圖所示:

Random類
Random類: 專門用來生成隨機(jī)數(shù)。
import java.util.Random;
public class TestRandom {
public static void main(String[ ] args) {
Random rand = new Random();
//隨機(jī)生成[0,1)之間的double類型的數(shù)據(jù)
System.out.println(rand.nextDouble());
//隨機(jī)生成int類型允許范圍之內(nèi)的整型數(shù)據(jù)
System.out.println(rand.nextInt());
//隨機(jī)生成[0,1)之間的float類型的數(shù)據(jù)
System.out.println(rand.nextFloat());
//隨機(jī)生成false或者true
System.out.println(rand.nextBoolean());
//隨機(jī)生成[0,10)之間的int類型的數(shù)據(jù)
System.out.print(rand.nextInt(10));
//隨機(jī)生成[20,30)之間的int類型的數(shù)據(jù)
System.out.print(20 + rand.nextInt(10));
}
}
注意
Random類位于java.util包
Calendar日歷類
Calendar 類是一個抽象類,為我們提供了關(guān)于日期計算的功能,比如:年、月、日、時、分、秒的展示和計算。
GregorianCalendar 是 Calendar 的子類,表示公歷。
菜鳥雷區(qū)
注意月份的表示,一月是0,二月是1,以此類推,12月是11。 因為大多數(shù)人習(xí)慣于使用單詞而不是使用數(shù)字來表示月份,這樣程序也許更易讀,父類Calendar使用常量來表示月份:JANUARY、FEBRUARY等等。
【示例】GregorianCalendar類和Calendar類的使用
import java.util.*;
public class TestCalendar {
public static void main(String[ ] args) {
// 得到相關(guān)日期元素
GregorianCalendar calendar = new GregorianCalendar(2049, 9, 1, 22, 10, 50);
int year = calendar.get(Calendar.YEAR); // 打印:2049
int month = calendar.get(Calendar.MONTH); // 打印:9
int day = calendar.get(Calendar.DAY_OF_MONTH); // 打印:1
int day2 = calendar.get(Calendar.DATE); // 打印:1
// 日:Calendar.DATE和Calendar.DAY_OF_MONTH同義
int date = calendar.get(Calendar.DAY_OF_WEEK); // 打印:1
// 星期幾 這里是:1-7.周日是1,周一是2,。。。周六是7
System.out.println(year);
System.out.println(month);
System.out.println(day);
System.out.println(day2);
System.out.println(date);
// 設(shè)置日期
GregorianCalendar calendar2 = new GregorianCalendar();
calendar2.set(Calendar.YEAR, 2049);
calendar2.set(Calendar.MONTH, Calendar.OCTOBER); // 月份數(shù):0-11
calendar2.set(Calendar.DATE, 1);
calendar2.set(Calendar.HOUR_OF_DAY, 10);
calendar2.set(Calendar.MINUTE, 20);
calendar2.set(Calendar.SECOND, 23);
printCalendar(calendar2);
// 日期計算
GregorianCalendar calendar3 = new GregorianCalendar(2049, 9, 1, 22, 10, 50);
calendar3.add(Calendar.MONTH, -7); // 月份減7
calendar3.add(Calendar.DATE, 7); // 增加7天
printCalendar(calendar3);
// 日歷對象和時間對象轉(zhuǎn)化
Date d = calendar3.getTime();
GregorianCalendar calendar4 = new GregorianCalendar();
calendar4.setTime(new Date());
}
static void printCalendar(Calendar calendar) {
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int date = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期幾
String week = "" + ((date == 0) ? "日" : date);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.printf("%d年%d月%d日,星期%s %d:%d:%d\n", year, month, day,
week, hour, minute, second);
}
}
運行結(jié)果如下圖:

浙公網(wǎng)安備 33010602011771號