JAVA學習——10.Math類,Date類,Random類,Calendar類

Math類

Math 類在 java.lang 包中,包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
常用方法
在這裏插入圖片描述在這裏插入圖片描述
例如:

public class MathDemo {
    public static void main(String[] args) {
        System.out.println(Math.abs(-12.7));
        System.out.println(Math.ceil(12.7));
        System.out.println(Math.rint(12.4));
        System.out.println(Math.random());
        System.out.println("sin30 = " + Math.sin(Math.PI / 6));
        // 計算30°的正弦值,參數是用弧度表示的角,即π的六分之一
        System.out.println("cos30 = " + Math.cos(Math.PI / 6));
        // 計算30°的餘弦值,這些計算三角函數的方法,其參數和返回值的類型都爲double
        System.out.println("tan30 = " + Math.tan(Math.PI / 6));
        // 計算30°的正切值
    }
}

Date

Date 類表示日期和時間,裏面封裝了操作日期和時間的方法。Date 類經常用來獲取系統當前時間。
類 Date 中定義的未過時的構造方法:
在這裏插入圖片描述

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        String strDate, strTime;
        Date objDate = new Date();
        System.out.println("今天的日期是:" + objDate);
        long time = objDate.getTime();
        System.out.println("自1970年1月1日起以毫秒爲單位的時間(GMT):" + time);
        strDate = objDate.toString();
        //提取 GMT 時間
        strTime = strDate.substring(11, (strDate.length() - 4));
        //按小時、分鐘和秒提取時間
        strTime = "時間:" + strTime.substring(0, 8);
        System.out.println(strTime);
        //格式化時間
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(formatter.format(objDate));
    }
}

Random

import java.util.Random;

public class RandomDemo {
    public static void main(String[] args) {
        Random random = new Random();
        //隨機生成一個整數 int範圍
        System.out.println(random.nextInt());
        //生成 [0,n] 範圍的整數  設n=100
        System.out.println(random.nextInt(100 + 1));
        //生成 [0,n) 範圍的整數  設n=100
        System.out.println(random.nextInt(100));
        //生成 [m,n] 範圍的整數  設n=100 m=40
        System.out.println((random.nextInt(100 - 40 + 1) + 40));
        //隨機生成一個整數 long範圍
        System.out.print(random.nextLong());
        //生成[0,1.0)範圍的float型小數
        System.out.println(random.nextFloat());
        //生成[0,1.0)範圍的double型小數
        System.out.println(random.nextDouble());
    }
}

Calendar

在早期的 JDK 版本中,Date 類附有兩大功能:

  1. 允許用年、月、日、時、分、秒來解釋日期
  2. 允許對錶示日期的字符串進行格式化和句法分析
    在 JDK1.1 中提供了類 Calendar 來完成第一種功能,類 DateFormat 來完成第二項功能。DateFormat 是 java.text 包中的一個類。與 Date 類有所不同的是,DateFormat 類可以接受用各種語言和不同習慣表示的日期字符串。
    但是 Calendar 類是一個抽象類,它完成 Date 類與普通日期表示法之間的轉換,而我們更多的是使用 Calendar 類的子類 GregorianCalendar 類。它實現了世界上普遍使用的公曆系統。當然我們也可以繼承 Calendar 類,然後自己定義實現日曆方法。
    GregorianCalendar 類的構造函數:
    [image:CBBEE7A1-398C-437F-AEF0-1E779E78E9E7-1787-000016121346215C/D3D1221E-1345-45F4-A0EE-64430E08D9BB.png]
    TimeZone 是 java.util 包中的一個類,其中封裝了有關時區的信息。每一個時區對應一組 ID。類 TimeZone 提供了一些方法完成時區與對應 ID 兩者之間的轉換。
    例如:
//太平洋時區的 ID 爲 PST
TimeZone tz0 = TimeZone.getTimeZone(“PST”)
//getDefault()可以獲取主機所處時區的對象
TimeZone tz1 = TimeZone.getDefault()

Locale 只是一種機制,它用來標識一個特定的地理、政治或文化區域獲取一個 Locale 對象的構造方法:

//調用Locale類的構造方法
Locale l0 = new Locale(String language)
Locale l1 = new Locale(String language, String country)
Locale l2 = new Locale(String languge, String country, String variant)

//調用Locale類中定義的常量
Locale  l1 = Locale.CHINA

例如:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarDemo {
    public static void main(String[] args) {
        System.out.println("完整顯示日期時間:");
        // 字符串轉換日期格式
        DateFormat fdate = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
        String str = fdate.format(new Date());
        System.out.println(str);

        // 創建 Calendar 對象
        Calendar calendar = Calendar.getInstance();
        // 初始化 Calendar 對象,但並不必要,除非需要重置時間
        calendar.setTime(new Date());

        // 顯示年份
        System.out.println(“年: “ + calendar.get(Calendar.YEAR));

        // 顯示月份 (從0開始, 實際顯示要加一)
        System.out.println(“月: “ + calendar.get(Calendar.MONTH));


        // 當前分鐘數
        System.out.println("分鐘: " + calendar.get(Calendar.MINUTE));

        // 今年的第 N 天
        System.out.println(“今年的第 “ + calendar.get(Calendar.DAY_OF_YEAR) + “天”);

        // 本月第 N 天
        System.out.println("本月的第 " + calendar.get(Calendar.DAY_OF_MONTH) + "天");

        // 3小時以後
        calendar.add(Calendar.HOUR_OF_DAY, 3);
        System.out.println("三小時以後的時間: " + calendar.getTime());
        // 格式化顯示
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
        System.out.println(str);

        // 重置 Calendar 顯示當前時間
        calendar.setTime(new Date());
        str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
        System.out.println(str);

        // 創建一個 Calendar 用於比較時間
        Calendar calendarNew = Calendar.getInstance();

        // 設定爲 5 小時以前,後者大,顯示 -1
        calendarNew.add(Calendar.HOUR, -5);
        System.out.println("時間比較:" + calendarNew.compareTo(calendar));

        // 設定7小時以後,前者大,顯示 1
        calendarNew.add(Calendar.HOUR, +7);
        System.out.println("時間比較:" + calendarNew.compareTo(calendar));

        // 退回 2 小時,時間相同,顯示0
        calendarNew.add(Calendar.HOUR, -2);
        System.out.println("時間比較:" + calendarNew.compareTo(calendar));

        // calendarNew創建時間點
        System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendarNew.getTime()));
        // calendar創建時間點
        System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime()));
        System.out.println("時間比較:" + calendarNew.compareTo(calendar));
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章