Java中Math和日期时间类的应用

Date对像的构建

Date类概述
类Date表示特定的瞬间,精确到毫秒,在Java1.1版本后Date API废弃了更多的方法,官方提倡使用Calendar以及使用DateFormat日期格式化类中的方法来代替Date类中许多被废弃的方法
Date类构造器

  1. public Date():创建一个本地时期的系统时间,不准确(与计算机时间相关,并非一定是当前时间)
  2. public Date(long date):提供一个long型的date参数作为时间毫秒数创建对象,这个毫秒数是自1970年开始到现在的总毫秒数
	public static void main(String []args) {
		
		/*无参构造器*/
		Date date = new Date();//获取一个系统时间
		System.out.println(date.toString());//将date以字符串形式输出
		/*
		 * 输出结果为:Wed Aug 05 20:59:41 CST 2020
		 * 分别代表:周、月、日、时分秒、时间类型(此处为中央标准时间)、年
		 */
		
		/*以long型数据date为参数*/
		Date date2 = new Date(1000);//从标准基准时间起延后1000毫秒,即1秒,标准基准时间:中央标准时间1970年1月1日8:00:00
		System.out.print(date2.toString());
	}

Date类常用方法

  1. public boolean after(Date when):判断调用者时间是否晚于给定时间
  2. public boolean before(Date when):判断调用者时间是否早于给定时间
  3. public int compareTo(Date anotherDate):将调用者与另一Date对象比较,若调用者大则返回1,两者等则返回0,调用者小则返回-1
  4. public long getTime():将时间转化为long型毫秒数返回,此毫秒数开始于标准基准时间1970/1/1 8:00:00
  5. public void setTime(long time):以long型毫秒数设置时间,与以long为参数的构造器类似
  6. public String toString():将date对象以字符串形式输出,输出格式为:周、周、月、日、时分秒、此处为中央标准时间、年
		Date date1 = new Date(1000);
		Date date2 = new Date(3000);
		
		/*时间大小判断*/
		boolean bool1 = date1.after(date2);//date1不晚于date2,返回false
		boolean bool2 = date1.before(date2);//date1早于date2,返回true
		
		/*获取时间差值*/
		int D_Value = date1.compareTo(date2);//此处date1小于date2,返回-1
		
		/*返回long型的毫秒数*/
		long Msec = date1.getTime();//返回1000
		
		/*返回字符串类型*/
		String date = date1.toString();//返回Thu Jan 01 08:00:01 CST 1970

Calendar对象的构建

Calender是一个抽象类,没有构造器,但具有多个静态方法用于构建C
alendar对象
Calendar用于构建对像的静态方法

public static Calendar getInstance():获取默认的所在的JVM的系统时间和默认时区的日历对象

Calendar的主要常量字段(字段作用类似于索引)

  1. public static final int AM:提示从午夜到中午之前这段时间内的AM_PM字段值1
  2. public static final int PM:提示从中午到午夜这段时间之内的AM_PM字段值1
  3. public static final int YEAR:日历中的年份 1
  4. public static final int MONTH:日历中当年的月份,从0开始 2
  5. public static final int DATE:日历当月的天,从1开始5
  6. public static final int HOUR:日历12小时制表示0-11 10
  7. public static final int HOUR_OF_DAY:日历24小时制表示11
  8. public static final int MINUTE:指示一小时中的分钟12
  9. public static final int SECOND:指示一分钟中的秒13
    10.public static final int MILLISECOND:指示一秒钟的毫秒 14

Calendar的主要方法

  1. public abstract void add(int field,int value):更改日历中某个字段field的值
  2. public boolean after(Object when):判断日历当前时间是佛在给定时间之后
  3. public boolean before(Object when):判断日历当前时间是否在给定时间之前
  4. public int compareTo(Calendar anotherCalendar):比较两个Calendar的时间大小,调用者大则返回1,等则返回0,小则返回-1
  5. public final Date getTime():获取日历当前时间对象
  6. public void set(int field,int value):将给定的日历字段field设置为给定value
  7. public final void set(int year,int month,int date):设置日历的年份、月份、日期值
  8. public final void set(int year,int month,int date,int hourOfDay,int minute,int second):设置日历的年、月、日、时、分、秒的值
		Calendar cd = Calendar.getInstance();//使用默认时区并指向当前系统时间创建一个日历实例
		
		/*判断两日历时间*/
		int a = cd.compareTo(Calendar.getInstance());//以int返回表示两者大小,此处返回1
		boolean bool1 = cd.after(Calendar.getInstance());//返回true
		boolean bool2 = cd.before(Calendar.getInstance());//返回false
		
		/*获取当前时间对象*/
		Date date = cd.getTime();//输出为Fri Aug 05 23:08:26 CST 2022
		
		/*更改字段下的value*/
		int year=2022;
		cd.set(Calendar.YEAR, year);//将2021设置到日历的年份字段中
		
		/*设置日历的年份、月份、日期值*/
		cd.set(2021, 0, 1);//月份从0开始
		
		/*设置日历的年、月、日、时、分、秒的值 */
		cd.set(2021, 0, 1, 0, 0, 0);
		System.out.print(cd.getTime());

Math类的概述

Math类定义了数学运算的基本功能,Math类中所有属性及功能方法都定义为static的,Math类不需要创建实例,Math类是final修饰的终极类,不能被继承。

Math类的常量字段

  • public static final double E:自然对数的底数(2.718281828459045)通常用于科学领域的计算使用
  • public static final double PI:圆的周长和直径的比,即圆周率表示值(3.141592653589793)

Math常用方法

  1. public static double abs(double|float|long|int num):求绝对值
  2. public static double cbrt(double num):求立方根
  3. public static double ceil(double num):返回大于等于给定值的最小数,该值等于某个整数
  4. public static double floor(double a):返回小于等于给定值的最小数,该值等于某个整数
  5. public static double max(double a,double b):返回两数最大值
  6. public static double min(double a,double b):返回两数最小值
  7. public static double pow(double a,double b):返回第一个参数的第二个参数次幂的值
  8. public static double random():返回带正号的double值,该值大于等于0.0且小于1.0的随机数
		double num = -1;
		double num2 = 3;
		/*绝对值*/
		Math.abs(num);
		
		/*立方根*/
		Math.cbrt(num2);
		
		/*返回前后整数*/
		Math.ceil(num);//返回大于等于给定值的最小数,该值等于某个整数
		Math.floor(num2);//返回小于等于给定值的最小数,该值等于某个整数
		
		/*比大小*/
		Math.max(num, num2);//此处返回num2
		Math.min(num, num2);//此处返回num
		
		/*求次幂值*/
		Math.pow(num, num2);
		
		/*获得随机0-1小数*/
		Math.random();
		System.out.print(Math.random());
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页