Date类
- Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代
- 时间单位
- 1秒=1000毫秒
- 1毫秒=1000微秒
- 1微秒=1000纳秒(纳秒也叫毫微秒)
package com.commonClass.dateClass;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
//1.创建Date对象
//今天的时间
Date date1=new Date();
System.out.println(date1.toString());
System.out.println(date1.toLocaleString());//toLocaleString()已经过时了,但仍然可以用
//昨天的时间
Date date2=new Date(date1.getTime()-60*60*24*1000);//后面的数字表示60秒*60分钟*24小时*1000毫秒,这是一天的时间,用今天的时间减去一天便是昨天的时间
System.out.println(date2.toLocaleString());
//2.方法after before
boolean b1=date1.after(date2);
System.out.println(b1);
boolean b2=date1.before(date2);
System.out.println(b2);
//比较compareTo();//string 是比较他们的位置 compare是比较本身的值
int d1=date1.compareTo(date2);//date2是今天,今天肯定要比昨天多,所以输出为1
int d2=date2.compareTo(date1);//输出为-1
int d3=date1.compareTo(date1);//输出为0
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
//比较是否相等equals()
boolean b=date1.equals(date2);
System.out.println(b);
}
}
package com.commonClass.bigDecimalClass;
import java.math.BigDecimal;
public class Demo01 {
public static void main(String[] args) {
double d1 = 1.0;
double d2 = 0.9;//double类型采用的是近似值存储方式,看着是1,实际上存的是0.999999999999999999999999……,看着是0.9,实际存的是0.899999999999……
System.out.println(d1 - d2);//为什么不是0.1
System.out.println(d1+d2);
System.out.println(d1*d2);
double result=(1.4-0.5)/0.9;
System.out.println(result);//为什么不是1
//BigDecimal,大的浮点数的精确计算
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("0.9");
//减法
BigDecimal r1=bd1.subtract(bd2);//这不是数字间的基本运算,所以要实现减法需要调用方法。subtract就可以实现BigDecimal之间的减法运算
System.out.println(r1);
//加法
BigDecimal r2=bd1.add(bd2);
System.out.println(r2);
//乘法
BigDecimal r3=bd1.multiply(bd2);
System.out.println(r3);
//除法
BigDecimal r4=new BigDecimal("1.4").
subtract(new BigDecimal("0.5")).
divide(new BigDecimal("0.9"));//可以连着写,但是影响阅读,所以隔开能更清晰一些
System.out.println(r4);
//BigDecimal r5=new BigDecimal("20").divide(new BigDecimal("3")); // 20/3除不尽,同时也没告诉他保留几位小数,于是就会抛出异常
BigDecimal r5=new BigDecimal("20").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);//后面的代表保留2位小数,并遵循四舍五入
System.out.println(r5);
}
}
Calender类
-
Calendar提供了获取或设置各种日历字段的方法
-
构造方法
- protected Calendar( ):由于修饰符是protected,所以无法直接创建对象
-
其他方法
方法名 | 说明 |
---|---|
static Calendar getlnstance | 使用时默认时区和区域获取日历 |
void set(int year,int month,int date,int hourofday,int minute,int second) | 设置日历的年、月、日、时、分、秒 |
int get(int field) | 返回给定日历字段的值。字段比如年、月、日等 |
void setTime(Date date) | 用给定的Date设置此日历的时间。Date-Calendar |
Date getTime() | 返回一个Date表示此日历的时间。Calendar-Date |
void add(int field,int amount) | 按照日历的规则,给指定字段添加或减少时间量 |
long getTimelnMillies() | 毫秒为单位返回该日历的时间值 |