Calendar日历类、Math数学工具类、Random随机数类

一、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();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值