java int相除向上取整_java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

Java开发中经常用到的类和方法,以下主要就日期是时间处理、金融数字处理、数学计算、随机数、MD5加密等。

java.util.Date类

java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。日期时间的本质是一个long,它表示从1970-1-1 0:0:0.000以来的毫秒数。

System.currentTimeMillis() 可以得到当前系统时间所表示的毫秒数.

java.util.Date类

getYear(): 自1900年以来的年数

getMonth(): 0-11

getDate(): 1-31

getHours(): 0-23

getMinutes(): 0-59

getSeconds(): 0-59

getDay(): 0(sunday)-6(saturday)

getTime(): 自1970-1-1以来的毫秒数

toLocaleString(): 转换为本地格式的字符串

日期比较

Java使用以下三种方法来比较两个日期:

1. 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2. 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3. 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

使用 SimpleDateFormat 格式化日期

java.text.SimpleDateFormat类支持String和Date的转换。SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。例如:

8b18b309b18968b0635fe4a02acfac21.png

java.util.Calendar类

从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多。当然在实现方式上Calendar比Date类要复杂一点点。

创建一个代表系统当前日期的Calendar对象

Calendar c = Calendar.getInstance();//默认是当前日期

创建一个指定日期的Calendar对象

使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

//创建一个代表2009年6月12日的Calendar对象

Calendar c1 = Calendar.getInstance();

c1.set(2009, 6 - 1, 12);

Calendar类对象常用方法

getInstance(): 得到当前日期和时间

set(): 可以只设定某个字段,且其它所有的数值会被重新计算

add(): add(Calendar.DATE, 10); 表示为10天后的日期,其它所有的数值会被重新计算

get(): 得到某一部分的值,如:YEAR,MONTH,DAY_OF_YEAR ...

getTime(): 得到java.util.Date

setTime(Date): 用java.util.Date给Calendar赋值

Calendar类对象信息的获得

Calendar cal = Calendar.getInstance();

// 获得年份

int year = cal.get(Calendar.YEAR);

// 获得月份

int month = cal.get(Calendar.MONTH) + 1;

// 获得日期

int date = cal.get(Calendar.DATE);

// 获得小时

int hour = cal.get(Calendar.HOUR_OF_DAY);

// 获得分钟

int minute = cal.get(Calendar.MINUTE);

// 获得秒

int second = cal.get(Calendar.SECOND);

// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)

int day = cal.get(Calendar.DAY_OF_WEEK);

金融计算

java.math.BigDecimal类是java小数操作的一个专有类,在电商、金融行业 存储跟金额有关的字段。

思考:java里面明明已经有了,float,double这种精度的小数,为什么还需要BigDecimal呢?这难道不是多余吗?

接下来看一个例子:

@Test

public void testDoubleSimple() {

double a = 3;

double b = 10;

double c = a / b;

System.out.println(c);

}

控制台输出结果:0.3

在小数操作中,我们通常希望能有多种自由的定义方式。例如在不同的场景可能需要返回: 0.3, 0.4, 0.333 不同精度,在不同的精度进位时希望能自主控制。这个时候,就轮到BigDecimal出场了。

四则运算方法:

add()

subtract()

multiply()

divide()

41f68dc685ffd647adfe1eac1e0f502d.png
bccbae2e34a8dd28ebc617d73c0629b9.png

注意: 尽量传入String型参数来构造BigDecimal对象,这样才能避免计算误差。

MD5加密

MD5算法是不可逆的,与它同级别的算法还有SHA1, SHA256等。

jdk本身提供java.security.MessageDigest类,它实现了md5加密算法;除此之外,apache也提供更便捷的加密类。

5d5875f344b24462bc1428c326480d36.png

数学运算

java.lang.Math类

pow(): 求幂值

sqrt(): 求平方根

ceil(): 向上取整

floor(): 向下取整

random(): 生成随机的0-1的小数

round(): 四舍五入

abs(): 求绝对值

取随机值

java.util.Random类

这是一个伪随机序列生成器,可以给它提供一个种子(seed),不同的seed产生不同的随机数序列。

Random random = new Random(100);

部分方法:

nextInt()

nextDouble()

java.util.UUID类

这是一个标识符生成器, 它生成全局唯一的32位字符串.

部分方法:

randomUUID()

String uuid = UUID.randomUUID().toString().replaceAll("-", "");

//获取32位随机UUID值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值