一:Math数学类
Math类是一个final类,其下面定义的方法都是静态的,所以我们可以直接使用类名.方法名直接调用此方法。
- abs():求绝对值
- sqrt():求给定平方根
- pow():求n次幂
- cei():求一个比指定数大的最小整数(一般用于分页操作)
- floor():求一个比指定数小的最大整数
- round:求一个数的四舍五入,其实就是将次数加0.5再向下取整(float型返回的是int型吗,而double返回的是long型)
- random():参数一个【0,1)的伪随机数
- PI:常量值
- sin():给定角度的正弦值
- max():两个数的最大值
- min(): 两个数的最小值
public class TestMath {
public static void main(String[] args){
//1.求圆周率
double pi = Math.PI;
System.out.println("pi = " + pi);
//2.求一个数的绝对值
int abs = Math.abs(-8);
System.out.println("abs = " + abs);
//3.求指定数的N次幂
double pow = Math.pow(2, 3);
System.out.println("pow = " + pow);
//4.求指定数的平方根
double sqrt = Math.sqrt(3);
System.out.println("sqrt = " + sqrt);
//5.产生一个【0,1)区间的随机小数
double random = Math.random();
System.out.println("random = " + random);
//6。求两个数的最大值和最小值
int max = Math.max(2, 14);
System.out.println("max = " + max);
int min = Math.min(3, 2);
System.out.println("min = " + min);
//7.求一个小数的四舍五入(原则,加0.5向下取整)
long round = Math.round(1.8);
System.out.println("round = " + round);
//8.返回比指定数大的最小整数
double ceil = Math.ceil(3.2);
System.out.println("ceil = " + ceil);
//9.返回比指定数小的最大整数
double floor = Math.floor(1.1);
System.out.println("floor = " + floor);
//10.求一个数的正弦值
double sin = Math.sin(2.14);
System.out.println("sin = " + sin);
}
}
二:Random类
Random类不是不是静态类,所以使用其方法时需要先new对象出来才可以使用,此类的实例用于生成伪随机数流
- new Random.nextInt():产生一个随机整数
- new Random.nextInt(value):产生一个[0,value)范围内的整数
- == new Random.nextInt(m-n) + n:产生一个[n,m)区间范围内的整数==
- new Random.nextBoolean():产生随机的true或者false
- new Random.nextDouble():产生随机的【0.0,1.0)之间的双精度浮点数
- new Random.nextFloat(): 产生随机的【0.0,1.0)之间的单精度浮点数
- new Random.nextByte():返回的到byte[]数组中,其值是byte型
public class test02 {
@Test
public void testA(){
//1.1) 定义romdem类对象
Random random = new Random();
//1.2)产生一个随机整数(在整数范围内产生随机数)
int i = random.nextInt();
System.out.println("i = " + i);
//1.3) 产生一个[0,50) 的随机整数
int i1 = random.nextInt(50);
System.out.println("i1 = " + i1);
//1.4) 产生一个[30,100)的随机整数
/**
* 思路:[n,m)
* 1.先找到一个【0,m-n)之间的整数·
* 2.在在这个数基础上加n就是[n,m)区间的整数
*/
int i2 = random.nextInt(100-30);
int a = i2 + 30;
System.out.println("a = " + a);
}
三:Date日期类(已过时)
此工具类也需要创建对象才可使用已被Calendar日历类取代。
- date.getYear():获取年 //是从1900年到现在的差值
- date.getMonth():获取月 //0是一月
- date.getDate():获取日
- date.getDay():获取星期 //星期天-星期六是0-6
- date.getHours():获取时
- date.getMinutes():获取分
- date.getSeconds():获取秒
- 打印可以调用日期格式化工具类SimpleDateFormat指定格式
int year = date.getYear(); //年 从1900年开始
int month = date.getMonth(); //月 从0开始为1月
int date1 = date.getDate(); //日
int day = date.getDay(); //周
int hours = date.getHours(); //时
int minutes = date.getMinutes(); //分
int seconds = date.getSeconds(); //秒
System.out.println("年:" + (year + 1900));
System.out.println("月:" + (month +1));
System.out.println("日:" + date1);
System.out.println("周:" + day);
System.out.println("时:" + hours);
System.out.println("分:" + minutes);
System.out.println("秒:" + seconds);
//打印当前时间的默认格式
System.out.println(date);
四:Calendar日历工具类
此类是一个抽象类,所以我们不能new此类,但是可以通过获取对象的方法,获取此对象,即Calendar.getInstance();
- 首先需要获取此工具类对象: Calendar calendar = Calendar.getInstance();
- 获取当前日期:calendar.getTime()
- 可以初始化格式日期工具类对日期进行初始化:new SimpleDateFormat(“YYYY-MM-dd HH:mm:ss E”);
- 获取时间字段如下
//5.获得当前日期的年月日时分秒星期几
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); //0是一月份
int d = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
int week = calendar.get(Calendar.DAY_OF_WEEK); //1是星期天,7是星期六
- 修改日期:cakendar,set(Calendar.YEAR,2010)///calendar.set(2100,1-1,1,0,0,0)
- 某个字段增加相应的值:calendar.add(Calendar.Date,1)
- 将字符串转化为时间:
//1.0) 定义字符串
String str = "2014-4-15";
//1.1 先拿到Calender对象
Calendar calendar = Calendar.getInstance();
//1.2) 定义格式化类,其传入的格式必须与字符串格式对应
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//1.3) 调用方法将字符串转化为日期
Date date = simpleDateFormat.parse(str);
//1.4)将此日期与日历半点
calendar.setTime(date);
实例:日历工具类的使用:求从2013年1月1日起,至2013年12月31日止,有多少个星期日
public class TestCalendarWork {
/**
* 案例一:求从2013年1月1日起,至2013年12月31日止,有多少个星期日(循环判断法)
* 分析:
* 1.获取日历类对象Calendar
* 2.获取Date类进行格式化
* 3.将当前时间改为2013.1.1
* 4.定义循环,判断当前日期是否是星期天,是就打印格式化后的日期,然后计数器加一
* 5.当前日期加一
* 6.判断当前年份是否还是13年,不是那么就break循环
* 7.打印计数器即可
*
*/
@Test
public void testA(){
//1.1) 获取Calendar对象
Calendar calendar = Calendar.getInstance();
//1.2) 定义SimpleDateFormat定义日起的格式化格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY年MM月dd日 E");
//1.3) 将当前时间修改为2013年1月1日,月份0是一月
calendar.set(2013,1-1,1);
//1.4) 定义计数器
int count = 0;
//1.5) 循环
while (true){
//1.6) 判断今天是星期日吗?是那么就count++并且输出
if (calendar.get(Calendar.DAY_OF_WEEK) == 1){
//1.7) 打印格式化后的时间
Date date = calendar.getTime();
String format = simpleDateFormat.format(date);
System.out.println(format);
count++;
}
//1.7) 日期加一天
calendar.add(Calendar.DATE ,1);
//1.8) 判断是否还是本年
if (!(calendar.get(Calendar.YEAR ) == 2013)){
break;
}
}
//1.9) 打印计数器
System.out.println("星期天的天数共有: " + count);
}