今
日
美
句
人生无须太多的准备,上帝给了我们腿与脚,就是让我们不停地前行。
前言
在解决实际问题时,对数字和日期的处理是非常普遍的,如数学问题、随机数问题和日期问题等。为了解决这些问题,Java 提供了处理相关问题的类,包括 Math 类、Random 类、BigInteger 类、Date 类等。
一、Math类常用方法
1
在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数、对数、平方根和三角函数等。Math 类位于 java.lang 包,使用时要先导入此包,Math 类中包含 E 和 PI 两个静态常量,其中 E 用于记录 e 的常量,而 PI 用于记录圆周率的值。具体应用我们看下面的实战代码吧。
二、Java生成随机数
2
在 java 中要生成一个指定范围之内的随机数字有两种方法:一种是调用 Math 类的 random() 方法,一种是使用 Random 类。Random 类位于 java.util 包中,使用时要先导入此包,Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float, byte 数组以及 double 类型的随机数,这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1 的随机数。
三、Java时间日期处理
3
在Java中获取当前时间,可以使用 java.util.Date 类和 java.util.Calendar 类完成。其中,Date 类主要封装了系统的日期和时间的信息,Calendar 类则会根据系统的日历来解释 Date 对象。Date 类表示系统特定的时间戳,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。创建 Calendar 对象不能使用 new 关键字,因为 Calendar 类是一个抽象类,但是它提供了一个 getInstance() 方法来获得 Calendar类的对象。getInstance() 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。
四、实战
4
运行结果及源码
4.1
4.2
4.3
4.1
package data;
import java.lang.*;
public class Math1 {
public static void main(String[] args){
System.out.println("E 常量的值:"+Math.E);//输出自然数e的值
System.out.println("PI 常量的值:"+Math.PI);//输出pi的值
System.out.println("5 和 68 的较大值:"+Math.max(10, 20));//输出较大值
System.out.println("23.9 和 24 的较小值:"+Math.min(15.6,15));//输出较小值
System.out.println("-12 的绝对值:"+Math.abs(-8));//输出绝对值
System.out.println("16 的平方根:"+Math.sqrt(25));//输出平方根
System.out.println("10 为底 2 的对数:"+Math.log10(3));//输出10为底3的对数
}
}
4.2
package data;
import java.util.Random;
public class Random2 {
public static void main(String[] args){
Random r=new Random();
double a=r.nextDouble(); //默认生成[0,1.0]区间的小数
int b=r.nextInt(10); //生成[0,10]区间的整数
int c=r.nextInt(18)-3; //生成[-3,15]区间的整数
long d=r.nextLong(); //生成一个随机长整型值
System.out.println("生成的[0,1.0]区间的小数是:"+a);
System.out.println("生成的[0,10]区间的整数是:"+b);
System.out.println("生成的[-3,15]区间的整数是:"+c);
System.out.println("生成的随机长整型数是:"+d);
}
}
4.3
package first.data;
import java.util.Date;
import java.util.Scanner;
public class Data3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入要做的事情:");
String title = input.next();
Date date1 = new Date(); // 获取当前日期
System.out.println("[" + title + "] 这件事发生时间为:" + date1);
try {
Thread.sleep(60000);// 暂停 1 分钟
} catch (InterruptedException e) {
e.printStackTrace();
}
Date date2 = new Date();
System.out.println("现在时间为:" + date2);
if (date2.before(date1)) {
System.out.println("你还有 " + (date2.getTime() - date1.getTime()) / 1000 + " 秒需要去完成【" + title + "】这件事!");
} else {
System.out.println("【" + title + "】事情已经过去了 " + (date2.getTime() - date1.getTime()) / 1000 + " 秒");
}
}
}
小编有话说
上次习题代码附下,大家有顺利完成吗?本周时间日期处理相对较简单,所以大家自行练习,或许大家现在还没有感受到自己在编程方面有巨大的进步,我们的进度也稍显缓慢,小编也是能力有限,那我们就但行好事,莫问前程,结果总会是好的,如果现在还不是,那只能说明现在还不是结果。Fighting!
编辑:玥怡居士|审核:世外居士
▼
往期精彩回顾
▼
居士之家
微信号 : IT进阶之旅
长按识别二维码关注
我就知道你“在看”