一、Calendar日历类
1.Calendar类是一个抽象类,为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
瞬间可用毫秒值来表示,它是距格林威治标准时间1970年1月1日的00:00:000的偏移量
2.与其他语言环境敏感类一样,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返一个Calendar对象,其日历字段已由当前日期和时间
初始化。
3.常用方法
(1)public static Calendar getInstance():得到Calendar的一个实例
(2)public final Date getTime():返回一个表示此Calendar的时间值(即Date对象)
(3)public final void setTime(Date date):设置日期
(4)public int get(int field):获取日历的某一部分内容
(5)public final void set(int year, int month, int date):设定指定的年月日
(6)public boolean before(Object when):判断此Calendar表示的时间是否在指定的Object表示的时间之前,之前返回true,否则返回false
(7)public boolean after(Object when):判断此Calendar表示的时间是否在指定的Object表示的时间之后,之后返回true,否则返回false
(8)public int compareTo(Calendar anotherCalendar):比较两个Calendar对象表示的时间值是否相等。
//-------------我是最美丽的分割线-------------------------------------------//
public class Demo {
public static void main(String[] args) throws ParseException {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);// 得到Calendar子类对象,里面封装所有的日期相关数据
// 获得当前日期对象里面相关字段的值
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH) + 1);
System.out.println(calendar.get(Calendar.DATE));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
// 设定指定的年月日
calendar.set(Calendar.YEAR, 2012);
System.out.println(calendar);
// 获取从1970年1月1日0时0分0秒到当前日期的毫秒数
System.out.println(calendar.getTimeInMillis());
}
}
//-------------我是最美丽的分割线-------------------------------------------//
二、Math数学工具类
1.Math类包含用于执行基本数学运算的方法,如绝对值,对数,平方根和三角函数。它是一个final类(常量类),其中定义的都是一些常量和静态方法。常用的方法如下:
(1)public static double sqrt(double a):返回平方根
(2)public static double ceil(double a):求比a大的第一个整数
(3)public static double floor(double a):求比a小的第一个整数
(4)public static double pow(double a, double b):求a的b次方
(5)public static long round(double a):对double类型的数据进行四舍五入,返回整数部分
(6)public static int round(float a)
(7)public static double random():返回[0,1)之间的随机数
//-------------我是最美丽的分割线-------------------------------------------//
public class Demo {
public static void main(String[] args) throws ParseException {
System.out.println(Math.floor(10.55));// 10.0
System.out.println(Math.ceil(-10.55));// -10.0
System.out.println(Math.pow(2, 3));// 8.0
System.out.println(Math.round(10.6));// 11
System.out.println(Math.random());// 0.4855907193877814
}
}
//-------------我是最美丽的分割线-------------------------------------------//
三、Random随机数类
1.Java中,有三种产生随机数的方法
(1)通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字;
(2)通过Math.random():返回一个0到1之间的double值
(3)通过Random类产生一个随机数,这是专业的Random工具类,功能强大
2.Random类中实现的随机算法是伪随机,即有规则的随机。随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。
相同种子数的Random对象,相同次数生成的随机数字相同。
3.两个构造方法:
(1)public Random()
(2)public Random(long seed)
4.常用方法
(1)public void nextBytes(byte[] bytes):随机产生多个byte类型的数据放到byte数组中
(2)public int nextInt():随机产生一个整数
(3)public int nextInt(int n):产生[0,n)之间的一个随机数
(4)public boolean nextBoolean()
(5)public float nextFloat()
(6)public double nextDouble()
//-------------我是最美丽的分割线-------------------------------------------//
public class Demo {
public static void main(String[] args) throws ParseException {
Random random = new Random();
System.err.println(random.nextInt());
System.err.println(random.nextInt(5));
System.err.println(random.nextBoolean());
System.err.println(random.nextFloat());
System.err.println(random.nextDouble());
}
}
//-----------------------产生四位验证码---------------------------------//
public class Demo {
public static void main(String[] args) throws ParseException {
System.out.println("验证码:" + RandomGen.codeGen());
}
}
class RandomGen{
public static String codeGen(){
char[] codeSequence = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1',
'2', '3', '4', '5', '6', '7', '8', '9'
};
Random random = new Random();
StringBuilder sb = new StringBuilder();
int count = 0;
while(true){
char c = codeSequence[random.nextInt(codeSequence.length)];
if (sb.indexOf(c + "") == -1) {
sb.append(c);
count++;
if(count == 4){
break;
}
}
}
return sb.toString();
}
}
1.Calendar类是一个抽象类,为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
瞬间可用毫秒值来表示,它是距格林威治标准时间1970年1月1日的00:00:000的偏移量
2.与其他语言环境敏感类一样,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返一个Calendar对象,其日历字段已由当前日期和时间
初始化。
3.常用方法
(1)public static Calendar getInstance():得到Calendar的一个实例
(2)public final Date getTime():返回一个表示此Calendar的时间值(即Date对象)
(3)public final void setTime(Date date):设置日期
(4)public int get(int field):获取日历的某一部分内容
(5)public final void set(int year, int month, int date):设定指定的年月日
(6)public boolean before(Object when):判断此Calendar表示的时间是否在指定的Object表示的时间之前,之前返回true,否则返回false
(7)public boolean after(Object when):判断此Calendar表示的时间是否在指定的Object表示的时间之后,之后返回true,否则返回false
(8)public int compareTo(Calendar anotherCalendar):比较两个Calendar对象表示的时间值是否相等。
//-------------我是最美丽的分割线-------------------------------------------//
public class Demo {
public static void main(String[] args) throws ParseException {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);// 得到Calendar子类对象,里面封装所有的日期相关数据
// 获得当前日期对象里面相关字段的值
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH) + 1);
System.out.println(calendar.get(Calendar.DATE));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
// 设定指定的年月日
calendar.set(Calendar.YEAR, 2012);
System.out.println(calendar);
// 获取从1970年1月1日0时0分0秒到当前日期的毫秒数
System.out.println(calendar.getTimeInMillis());
}
}
//-------------我是最美丽的分割线-------------------------------------------//
二、Math数学工具类
1.Math类包含用于执行基本数学运算的方法,如绝对值,对数,平方根和三角函数。它是一个final类(常量类),其中定义的都是一些常量和静态方法。常用的方法如下:
(1)public static double sqrt(double a):返回平方根
(2)public static double ceil(double a):求比a大的第一个整数
(3)public static double floor(double a):求比a小的第一个整数
(4)public static double pow(double a, double b):求a的b次方
(5)public static long round(double a):对double类型的数据进行四舍五入,返回整数部分
(6)public static int round(float a)
(7)public static double random():返回[0,1)之间的随机数
//-------------我是最美丽的分割线-------------------------------------------//
public class Demo {
public static void main(String[] args) throws ParseException {
System.out.println(Math.floor(10.55));// 10.0
System.out.println(Math.ceil(-10.55));// -10.0
System.out.println(Math.pow(2, 3));// 8.0
System.out.println(Math.round(10.6));// 11
System.out.println(Math.random());// 0.4855907193877814
}
}
//-------------我是最美丽的分割线-------------------------------------------//
三、Random随机数类
1.Java中,有三种产生随机数的方法
(1)通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字;
(2)通过Math.random():返回一个0到1之间的double值
(3)通过Random类产生一个随机数,这是专业的Random工具类,功能强大
2.Random类中实现的随机算法是伪随机,即有规则的随机。随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。
相同种子数的Random对象,相同次数生成的随机数字相同。
3.两个构造方法:
(1)public Random()
(2)public Random(long seed)
4.常用方法
(1)public void nextBytes(byte[] bytes):随机产生多个byte类型的数据放到byte数组中
(2)public int nextInt():随机产生一个整数
(3)public int nextInt(int n):产生[0,n)之间的一个随机数
(4)public boolean nextBoolean()
(5)public float nextFloat()
(6)public double nextDouble()
//-------------我是最美丽的分割线-------------------------------------------//
public class Demo {
public static void main(String[] args) throws ParseException {
Random random = new Random();
System.err.println(random.nextInt());
System.err.println(random.nextInt(5));
System.err.println(random.nextBoolean());
System.err.println(random.nextFloat());
System.err.println(random.nextDouble());
}
}
//-----------------------产生四位验证码---------------------------------//
public class Demo {
public static void main(String[] args) throws ParseException {
System.out.println("验证码:" + RandomGen.codeGen());
}
}
class RandomGen{
public static String codeGen(){
char[] codeSequence = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1',
'2', '3', '4', '5', '6', '7', '8', '9'
};
Random random = new Random();
StringBuilder sb = new StringBuilder();
int count = 0;
while(true){
char c = codeSequence[random.nextInt(codeSequence.length)];
if (sb.indexOf(c + "") == -1) {
sb.append(c);
count++;
if(count == 4){
break;
}
}
}
return sb.toString();
}
}