第九章 Java常用类 总结

9.1 包装类

Java是一种面向对象的语言,但在Java中不能定义基本数据类型的对象,为了能将基本数据类型视为对象进行处理,Java提出了包装类的概念,它主要是将基本数据类型封装在包装类中,如int型数值的包装类Integer,boolean型的包装类Boolean等,这样便可以把这些基本数据类型转换为对象进行处理。Java中的包装类及其对应的基本数据类型如下表所示。

包装类及其对应的基本数数据类型

包装类对应基本数据类型
Bytebyte
Integerint
Floatfloat
Characterchar
Shortshort
Longlong
Doubledouble
Booleanboolean

1.Integer 类

构造方法

Integer 类有以下两种构造方法。

1)Integer (int number)
该方法以一个int型变量作为参数来获取Integer对象。
例如,以int型变量作为参数创建Integer对象,代码如下:

Integer number = new Integer(7);

2)Integer(String str):
该方法以一个String型变量作为参数来获取Integer对象。

例如,以String型变量作为参数创建Integer对象,代码如下:

Integer number = new Integer("45");

 注意:
        如果要使用字符串变量创建 Integer 对象,字符串变量的值一定要要是数值型的,如"123",否则将会抛出 NumberFormatException 异常。

常用方法

Integer类的常用方法

package nine;
 
public class Demo {
	public static void main(String[] args) {
		int num = Integer.parseInt("456");// 将字符串转换为int类型
		Integer iNum = Integer.valueOf("456");// 通过构造函数创建一个Integer对象
		System.out.println("int数据与Integer对象的比较:" + iNum.equals(num));
		String str2 = Integer.toBinaryString(num);// 获取数字的二进制表示
		String str3 = Integer.toHexString(num);// 获取数字的十六进制表示
		String str4 = Integer.toOctalString(num);// 获取数字的八进制表示
		String str5 = Integer.toString(num, 15);// 获取数字的十五进制表示
		System.out.println("456的二进制表示为:" + str2);
		System.out.println("456的十六进制表示为:" + str3);
		System.out.println("456的八进制表示为:" + str4);
		System.out.println("456的十五进制表示为:" + str5);
		System.out.println("圆周率π的值为:" + Math.PI);
		System.out.println("自然对数底数e的值为:" + Math.E);
	}
}

 运行结果:

 常量

   Integer 类包含以下 4 个常量。

MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值。
MIN_VALUE:值为 -231 的常量,它表示 int 类型能够表示的最小值。
SIZE:用来以二进制补码形式表示 int 值的比特位数。
TYPE:表示基本类型 int 的 Class 实例。
 

下面的代码演示了 Integer 类中常量的使用。

package nine;
 
public class GetCon {// 创建类GetCon
	public static void main(String args[]) { // 主方法
		int maxint = Integer.MAX_VALUE; // 获取Integer类的常量值
		int minint = Integer.MIN_VALUE;
		int intsize = Integer.SIZE;
		System.out.println("int类型可取的最大值是:" + maxint); // 将常量值输出
		System.out.println("int类型可取的最小值是:" + minint);
		System.out.println("int类型的二进制位数是:" + intsize);
	}
 
}

   Integer 类包含以下 4 个常量。

MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值。
MIN_VALUE:值为 -231 的常量,它表示 int 类型能够表示的最小值。
SIZE:用来以二进制补码形式表示 int 值的比特位数。
TYPE:表示基本类型 int 的 Class 实例。

下面的代码演示了 Integer 类中常量的使用。

package nine;
 
public class GetCon {// 创建类GetCon
	public static void main(String args[]) { // 主方法
		int maxint = Integer.MAX_VALUE; // 获取Integer类的常量值
		int minint = Integer.MIN_VALUE;
		int intsize = Integer.SIZE;
		System.out.println("int类型可取的最大值是:" + maxint); // 将常量值输出
		System.out.println("int类型可取的最小值是:" + minint);
		System.out.println("int类型的二进制位数是:" + intsize);
	}
 
}

 运行结果:

2.Double 类

 Double 类和Float 类是对double、float基本类型的封装,它们都是Number类的子类,都是对小数进行操作,所以常用方法基本相同,本节将对Double类进行介绍。对于Float类可以参考Double类的相关介绍。
        Double类在对象中包装一个基本类型为 double的值,每个Double类的对象都包含一个double类型的字段。此外,该类还提供多个方法,可以将 double 转换为 String,将 String 转换为 double,也提供了其他一些处理 double 时有用的常量和方法。

构造方法

Double类提供了以下两种构造方法来获得Double 类对象。

1)Double(double value)
基于double 参数创建 Double 类对象。
例如,以int型变量作为参数创建 Double对象,代码如下:

Double number = newDouble(3.14);

2)Double(String str)
该方法以一个 String 型变量作为参数来获取 Double 对象。
例如,以String型变量作为参数创建 Double对象,代码如下:

Double number = new Double("3.14");

 常用方法

Double类类的常用方法

                

 下面通过一个实例演示 Double类的常用方法的使用。
        创建一个useDouble类,其中首先使用Double类的valueOf方法创建一个Double对象然后使用 Double 类的常用方法对该对象进行操作,并查看它们的显示结果。代码如下:

package nine;
 
public class useDouble {
	public static void main(String[] args) {
		Double dNum = Double.valueOf("3.14"); // 通过构造函数创建一个Integer对象
		System.out.println("3.14是否为非数字值:" + Double.isNaN(dNum.doubleValue()));// 判断是否为非数字值
		System.out.println("3.14转换为int值为:" + dNum.intValue());// 转换为int类型
		System.out.println("值为3.14的Double对象与3.14的比较结果:" + dNum.equals(3.14));// 判断大小
		System.out.println("3.14的十六进制表示为:" + Double.toHexString(dNum));// 转换为十六进制
	}
}

运行结果:

常量

        Double 类主要提供了以下常量:

1)MAX EXPONENT:返回int值,表示有限 double 变量可能具有的最大指数。(2)MIN EXPONENT:返回int值,表示标准化 double变量可能具有的最小指数。
3)NEGATIVE INFINITY:返回 double值,表示保存 double 类型的负无穷大值的常量。

4)POSITIVE INFINITY:返回 double值.,表示保存 double 类型的正无穷大值的常量。

3.Boolean 类

Boolean类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理boolean时非常有用的其他一些常量和方法。

构造方法

 Boolean类提供了以下两种构造方法来获得Boolean类对象。

1)Boolean(boolean value)
该方法创建一个表示value 参数的Boolean 对象。
例如,创建一个表示value参数的Boolean对象,代码如下:

Boolean b=new Boolean(true);

 2)Boolean(String str)
该方法以String变量作为参数创建 Boolean 对象。如果String参数不为null且在忽略大小写时等于true,则分配一个表示true值的Boolean 对象,否则获得一个false 值的Boolean 对象。
例如,以String变量作为参数,创建Boolean对象。代码如下:
 

Boolean bool = new Boolean("ok");

常用方法

Boolean类的的常用方法

                   

package nine;
 
public class GetBoolean {			//创建类
	public static void main(String args[]) { // 主方法
		Boolean b1 = new Boolean(true); // 创建Boolean对象
		Boolean b2 = new Boolean("ok"); // 创建Boolean对象
		System.out.println("b1:" + b1.booleanValue());
		System.out.println("b2:" + b2.booleanValue());
	}
}

 运行结果:

常量 

Boolean提供了以下3个常量:

1)TRUE:对应基值 true的Boolean对象。

2)FALSE:对应基值false的Boolean对象。

3)TYPE:基本类型boolean的Class对象。

 

4.Character 类

构造方法

常用方法

Character 类的常用方法

                 

 

package nine;
 
public class UpperOrLower {			//创建类
	public static void main(String args[]) { // 主方法
		Character mychar1 = new Character('A'); // 声明Character对象
		Character mychar2 = new Character('a'); // 声明Character对象
		if (Character.isUpperCase(mychar1)) {// 判断是否为大写字母
			System.out.println(mychar1 + "是大写字母 ");
			System.out.println("转换为小写字母的结果: " + Character.toLowerCase(mychar1));// 转换为小写
		}
		if (Character.isLowerCase(mychar2)) {// 判断是否为小写字母
			System.out.println(mychar2 + "是小写字母");
			System.out.println("转换为大写字母的结果: " + Character.toUpperCase(mychar2));// 转换为大写
		}
	}
}

运行结果:

 

常量
        Character类提供了大量表示特定字符的常量,例如:

1)CONNECTOR_PUNCTUATION:返回 byte 型值,表示Unicode规范中的常规类别“Pc”。
2)UNASSIGNED:返回 byte 型值,表示 Unicode 规范中的常规类别“Cn”。
3)TITLECASE LETTER:返回 byte 型值,表示Unicode规范中的常规类别“Lt”。

 5.Number 类

对于数值型的包装类,它们有一个共同的父类--Number 类,该类是一个抽象类,它是Byte、Integer、Short、Long、l Float和Double类的父类,其子类必须提供将表示的数值转换为byte、int、short、long、float和do uble 的方法。例如,doubleValue()方法返回双精度值,floatValue()方法返回浮点值。
Number类的方法分别被 Number 的各子类所实现, 也就是说,在Number类的所有子类中都包含以上这几种方法。

数值型包装类的共有方法

9.2 Math 类 

1.Math 类概述

Math 类表示数学类,于java.lang 包中,由系统默认调用,该类中提供了众多数学函数方法,主要包括三角函数方法,指数函数方法,取整函数方法,取最大值、最小值以及绝对值函数方法,这些方法都被定义为 static 形式,因此在程序中可以直接通过类名进行调用。使用形式如下:

Math.数学方法

在Math类中除了函数方法之外还存在一些常用的数学常量,如 PI、E等,这些数学常量作为 Math 类的成员变量出现,调用起来也很简单。可以使用如下形式调用:

 Math.PI //表示圆周率 PI的值 
Math.E //表示自然对数底数e的值

例如,下面代码用来分别输出PI和E的值。代码如下:

System.out.println("圆周率π的值为:"+ Math.PI);
System.out.println("自然对数底数e的值为:"+ Math.E);

 上面代码的输出结果为:

圆周率π的值为:3.141592653589793
自然对数底数e的值为:2718281828459045

2.常用数学运算法

三角函数方法

Math 类中的三角函数方法

 

 以上每个方法的参数和返回值都是 double 型的,将这些方法的参数的值设置为 double 型是有一定道理的,参数以弧度代替角度来实现,其中1°等于π/180 弧度,所以 180°可以使用元弧度来表示。除了可以获取角的正弦、余弦、正切、反正弦、反余弦、反正切之外,Math 类还提供了角度和弧度相互转换的方法toRadians()和toDegrees()。但需要注意的是,角度与弧度的转换通常是不精确的。
 

package nine;
 
public class TrigonometricFunction {//创建类
	public static void main(String[] args) {//主方法
		// 取90度的正弦
		System.out.println("90度的正弦值:" + Math.sin(Math.PI / 2));
		// 取0度的余弦
		System.out.println("0度的余弦值:" + Math.cos(0));
		// 取60度的正切
		System.out.println("60度的正切值:" + Math.tan(Math.PI / 3));
		// 取2的平方根与2商的反正弦
		System.out.println("2的平方根与2商的反弦值:"
				+ Math.asin(Math.sqrt(2) / 2));
		// 取2的平方根与2商的反余弦
		System.out.println("2的平方根与2商的反余弦值:"
				+ Math.acos(Math.sqrt(2) / 2));
		System.out.println("1的反正切值:" + Math.atan(1)); // 取1的反正切
		// 取120度的弧度值
		System.out.println("120度的弧度值:" + Math.toRadians(120.0));
		// 取π/2的角度
		System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI / 2));
	}
}

运行结果:

指数函数方法

Math类中与指数相关的函数方法

指数运算包括求方根、取对数以及求n次方的运算。

package nine;
 
public class ExponentFunction {//创建类
	public static void main(String[] args) {//主方法
		// 取e的2次方
		System.out.println("e的平方值:" + Math.exp(2));
		// 取以e为底2的对数
		System.out.println("以e为底2的对数值:" + Math.log(2));
		// 取以10为底2的对数
		System.out.println("以10为底2的对数值:" + Math.log10(2));
		System.out.println("4的平方根值:" + Math.sqrt(4)); // 取4的平方根
		System.out.println("8的立方根值:" + Math.cbrt(8)); // 取8的立方根
		System.out.println("2的2次方值:" + Math.pow(2, 2)); // 取2的2次方
	}
}

运行结果: 

 

取整函数方法

在具体的问题中,取整操作使用也很普遍, 所以Java在Math类中添加了数字取整方法

Math 类中常用的取整方法

                 

 

package nine;
 
public class IntFunction {//创建类
	public static void main(String[] args) {//主方法
		// 返回第一个大于等于参数的整数
		System.out.println("使用ceil()方法取整:" + Math.ceil(5.2));
		// 返回第一个小于等于参数的整数
		System.out.println("使用floor()方法取整:" + Math.floor(2.5));
		// 返回与参数最接近的整数
		System.out.println("使用rint()方法取整:" + Math.rint(2.7));
		// 返回与参数最接近的整数
		System.out.println("使用rint()方法取整:" + Math.rint(2.5));
		// 将参数加上0.5后返回最接近的整数
		System.out.println("使用round()方法取整:" + Math.round(3.4f));
		System.out.println("使用round()方法取整:" + Math.round(3.5f));
		// 将参数加上0.5后返回最接近的整数,并将结果强制转换为长整型
		System.out.println("使用round()方法取整,并将结果强制转换为长整型:" + Math.round(2.5));
	}
}

运行结果:

取最大值、最小值、绝对值函数方法

Math 类中其他的常用数据操作方法

package nine9;
 
public class AnyFunction {//创建类
	public static void main(String[] args) {//主方法
		
		System.out.println("4和8较大者:" + Math.max(4, 8)); // 取两个参数的最大值
		System.out.println("4.4和4较小者:" + Math.min(4.4, 4)); // 取两个参数的最小值
		System.out.println("-7的绝对值:" + Math.abs(-7)); // 取参数的绝对值
	}
}

运行结果: 

 

 

9.3 随机数

1.Math.random()方法

    在Math 类中存在一个random(方法,用于生成随机数字,该方法默认生成大于等于0.0小于 1.0的double 型随机数,即0<-Math.randomO<1.0,虽然Math.random()方法只可以生成0~1之间的 double型数字,但只要在Math.random()语句上稍加处理,就可以使用这个方法生成任意范围的随机数。
 

 
/**
 * 猜数字游戏
 */
package nine;
 
import java.util.Scanner;
 
public class NumGame {
	public static void main(String[] args) {
		System.out.println("——————猜数字游戏——————\n");
		int iNum;
		int iGuess;
		Scanner in = new Scanner(System.in);// 创建扫描器对象,用于输入
		iNum = (int) (Math.random() * 100);// 生成1到100之间的随机数
		System.out.print("请输入你猜的数字:");
		iGuess = in.nextInt(); // 输入首次猜测的数字
		while ((iGuess != -1) && (iGuess != iNum))// 判断输入的数字不是-1或者基准数
		{
			if (iGuess < iNum)// 若猜测的数字小于基准数,则提示用户输入的数太小,并让用户重新输入
			{
				System.out.print("太小,请重新输入:");
				iGuess = in.nextInt();
			} else// 若猜测的数字大于基准数,则提示用户输入的数太大,并让用户重新输入
			{
				System.out.print("太大,请重新输入:");
				iGuess = in.nextInt();
			}
		}
		if (iGuess == -1)// 若最后一次输入的数字是-1,循环结束的原因是用户选择退出游戏
		{
			System.out.println("退出游戏!");
		} else// 若最后一次输入的数字不是-1,用户猜对数字,获得成功,游戏结束
		{
			System.out.println("恭喜你,你赢了,猜中的数字是:" + iNum);
		}
		System.out.println("\n———————游戏结束———————");
	}
}

运行结果:

 除了随机生成数字以外,使用Math类的random法还可以随机生成字符,例如,可以使用下面代码生成 a~z 之间的字符:

(char)('a'+Math.random()*('z'-'a'+1)); 

通过上述表达式可以求出更多的随机字符,如A~Z之间的随机字符,进而推理出求任意两个字符之间的随机字符,可以使用以下语句表示: 

 (char)(cha1+Math.random()*(cha2-cha1+1));

 在这里可以将这个表达式设计为一个方法,参数设置为随机生成字符的上限与下限。

package nine;
 
public class MathRandomChar {
	// 定义获取任意字符之间的随机字符
	public static char GetRandomChar(char cha1, char cha2) {
		return (char) (cha1 + Math.random() * (cha2 - cha1 + 1));
	}
 
	public static void main(String[] args) {
		// 获取a~z之间的随机字符
		System.out.println("任意小写字符" + GetRandomChar('a', 'z'));
		// 获取A~Z之间的随机字符
		System.out.println("任意大写字符" + GetRandomChar('A', 'Z'));
		// 获取0~9之间的随机字符
		System.out.println("0到9任意数字字符" + GetRandomChar('0', '9'));
	}
}

 运行结果:

2.Random 类

        除了Math类中的random()方法可以获取随机数之外外,Java中还提供了一种可以获取随机数的方式,那就是java.util.Random类,该类表示一个随机数生成器,可以通过实例化一个Random对象创建一个随机数生成器。语法如下:

Random r=new Random();其中,r是指Random对象。 

 以这种方式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以生成的随机数将不同,但是如果运行速度太快,也会生成两次运行结果相同的随机数。
同时也可以在实例化Random类对象时,设置随机数生成器的种子。语法如下: 

 Random r=new Random(seedValue);

Random 类中常用的获取随机数方法

 

package nine;
 
import java.text.DecimalFormat;
import java.util.Random;
import java.util.Scanner;
 
/**
 * 模拟微信抢红包功能
 */
 
public class RedBags { //创建一个RedBags类
	public static void main(String[] args) {
		System.out.println("—————————模拟微信抢红包—————————\n"); 
		Scanner sc = new Scanner(System.in); //控制台输入
		System.out.print("请输入要装入红包的总金额(元):"); 
		double total = sc.nextDouble(); //输入“红包的总金额”
		System.out.print("请输入红包的个数(个):"); 
		int bagsnum = sc.nextInt(); //输入“红包的个数”
		double min = 0.01; //初始化“红包的最小金额”
		Random random = new Random(); //创建随机数对象random
		DecimalFormat df = new DecimalFormat("###,###,###.##"); //创建DecimalFormat类的对象df,并设置格式
		for (int i = 1; i < bagsnum; i++) { //设置“循环”
			double safe = (total - (bagsnum - i) * min) / (bagsnum - i); //通过公式模拟数学中的离散模型
			double money = (double) random.nextInt((int) ((safe - min) * 100)) / 100 + min; //根据离散模型得到每个红包的金额
			total = total - money; //替换total的值
			String temp = df.format(money); //调用format()方法,对数字money格式化
			System.out.println("第" + i + "个红包:" + temp + "元"); //输出结果
		}
		String left = df.format(total); //调用format()方法,对数字total格式化
		System.out.println("第" + bagsnum + "个红包:" + left + "元"); //输出结果
		sc.close(); //关闭控制台输入
	}
}

 运行结果:

 

9.4 日期时间类

1.Date 类

        Date类用于表示日期时间,它位于java.util包中,程序中使用该类表示时间时,需要使用其构造方法创建Date类的对象。

Date类的构造方法及说明 

Date类的常用方法及说明

package nine;
 
import java.util.Date;
 
public class DateTest {//创建类
	public static void main(String[] args) {//主方法
		Date date = new Date(); 				// 创建现在的日期
		long value = date.getTime(); 			// 获得毫秒数
		//输出
		System.out.println("日期:" + date);
		System.out.println("到现在所经历的毫秒数为: " + value);
	}
}

 运行结果:

 DateFormat类是日期/时间格式化子类的抽象类,它位于java.text包中,可以按照指定的格式对日期或时间进行格式化。DateFormat提供了很多类方法,以获得基于默认或给定语言环境和多种式化风格的默认日期/时间Formatter,格式化风格包括SHORT、MEDIUMLONG和FULL 等4种,分别如下:

1)SHORT:完全为数字,如 12.13.52 或 3:30pm。

2)MEDIUM:较长,如 Jan 12,1952。
3)LONG:更长,如 January 12,1952 或 3:30:32pm。
4)FULL:完全指定,如 Tuesday、April 12、1952AD 或 3:30:42pm PST。

  另外,使用DateFormat还可以自定义日期时间的格式。要格式化一个当前语言环境下的日期,首先需要创建DateFormat 类的一个对象,由于它是抽象类,因此可以使用其静态工厂方法 getDateInstance 进行创建。语法如下:

DateFormat df = DateFormat.getDateInstance();

 使用getDateInstance获取的是该国家/地区的标准日期格式,另外,DateFormat 类还提供了一些其他静态工厂方法,例如,使用 getTimeInstance 可获取该国家/地区的时间格式,使用 getDateTimeInstance 可获取日期和时间格式。

DateFormat类的常用方法及说明

由于DateFormat类是一个抽象类,不能用new创建实例对象,因此,除了使用getXXXInstance方法创建其对象外,还可以使用其子类,例如 SimpleDateFormat类,该类是一个以与语言环境相关的方式来格式化和分析日期的具体类,它允许进行格式化(日期->文本)、分析(文本>日期)和规范化。

package nine;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
 
public class DateFormatTest {
	public static void main(String[] args) {
		// 创建日期
		Date date = new Date();
		// 创建不同的日期格式
		DateFormat df1 = DateFormat.getInstance();
		DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
		DateFormat df3 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA);
		DateFormat df4 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE", Locale.US);
		DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd");
		DateFormat df6 = new SimpleDateFormat("yyyy年MM月dd日");
		// 将日期按照不同格式进行输出
		System.out.println("-------将日期时间按照不同格式进行输出------");
		System.out.println("按照Java默认的日期格式: " + df1.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss,系统默认区域:" + df2.format(date));
		System.out.println("按照指定格式 yyyy年MM月dd日 hh时mm分ss秒,区域为中文 : " + df3.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss,区域为美国: " + df4.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd: " + df5.format(date));
		System.out.println("按照指定格式 yyyy年MM月dd日: " + df6.format(date));
	}
}

运行结果:

2.Calendar 类

        Calendar提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化。使用方法如下:

Calendar rightNow = Calendar.getInstance();

注:
        由于Calendar 类是一个抽象类,不能用 new 创建实例对象,因此除了使用 getInstance 方法创建其对象外,还可以使用其子类创建对象,例如 GregorianCalendar类。

Calendar类提供的常用字段及说明

Calendar类 提供的常用方法及说明

 

package nine;
 
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
 
/**
 * 输出2022年冬奥会倒计时(暂定冬奥会举办时间为2022年2月2日)
 */
public class OlympicWinterGames { //创建OlympicWinterGames类
	public static void main(String[] args) {
		System.out.println("——————————冬奥会倒计时——————————\n"); 
		Date date = new Date(); //实例化Date
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); //创建SimpleDateFormat对象,制定目标格式
        String today = simpleDateFormat.format(date);// 调用format方法,格式化时间,转换为指定方法
        System.out.println("今天是" + today); //输出当前日期
        long time1 = date.getTime(); //计算“自 1970 年 1 月 1 日 00:00:00 至当前时间所经过的毫秒数
        Calendar calendar = Calendar.getInstance(); //使用默认时区和语言环境获得一个日历calendar
        calendar.set(2022, 2-1, 4); //设置日历calendar中的 YEAR、MONTH 和 DAY_OF_MONTH 的值
        long time2 = calendar.getTimeInMillis(); //计算“自 1970 年 1 月 1 日 00:00:00 至 2022 年 2 月 2 日所经过的毫秒数
        long day = (time2 - time1)/(24 * 60 * 60 * 1000); //计算2022 年 2 月 2 日距离当前时间的天数
        System.out.println("距离2022年“北京-张家口”冬奥会还有 " + day + " 天!");
	}
}

运行结果: 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值