1.6 BigDecimal
思考:以下程序输出结果是多少?
Public class TestBigDecimal{
Public static void main(String[] args){
double d1=1.0;
double d2=0.9;
System.out.println(d1-d2);//0.09999999999999998
}
}
-
位置:java.math包中。
-
作用:精确计算浮点数
-
创建方式: BigDecimal bd=new BigDecimal(“1.0”);
**传参一定要字符串 **
BigDecimal bd1=new BigDecimal("1.0");
BigDecimal bd2=new BigDecimal("0.9");
//减法
BigDecimal r1=bd1.substract(bd2);
//加法
BigDecimal r2=bd1.add(bd2);
//乘法
BigDecimal r3=bd1.mutiply(bd2);
//除法,保留3位小数,按照四舍五入的方法
BigDecimal r4=new BigDecimal("4.0").divide(new BigDecimal("3.0"),3,RoundingMode.HALF_UP)
1.7 Date
- Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法取代了
- 时间单位:
1秒=1000毫秒
,1毫秒=1000微妙
,1微妙=1000纳秒
public static void main(String[] args){
//1创建Date对象
//今天
Date date1=new Date();
System.out.println(date1.toString());
System.out.println(date1.toLocaleString());
//昨天
Date date=new Date(date1.getTime()-60*60*24*1000);
System.out.println(date2.toLocaleString());
//2方法after before
boolean b1=Date1.after(date2);
System.out.println(b1);
}
1.8 Calendar
- 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表示此日历的时间
void add(int field,int amount) 按照日历的规则,给指定字段添加或减少时间量
long getTimelnMillies() 毫秒为单位返回该日离的是兼职
public static void main(String[] args) {
//1、创建Calendar对象
Calendar calendar = Calendar.getInstance();//通过静态方法
System.out.println(calendar.getTime());//Tue Apr 26 22:03:38 CST 2022
System.out.println(calendar.getTime().toLocaleString());//2022-4-26 22:04:14
//2、获取时间信息
int i = calendar.get(calendar.YEAR);
int month = calendar.get(calendar.MONTH);//月是0-11范围的。从0开始
int date = calendar.get(calendar.DATE);
int hour = calendar.get(calendar.HOUR);//hour12小时。hour_of_day 为24
System.out.println(i);
System.out.println(month);
System.out.println(date);
System.out.println(hour);
//3、修改时间
Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.DAY_OF_MONTH,5);
System.out.println(calendar1.getTime().toLocaleString());
//4、add时间
calendar1.add(Calendar.MONTH,1);
System.out.println(calendar1.getTime().toLocaleString());
//5、补充方法
int actualMaximum = calendar1.getActualMaximum(Calendar.HOUR_OF_DAY);//获取当天最大有几小时。好东西
int actualMinimum = calendar.getActualMinimum(Calendar.HOUR_OF_DAY);//获得当天最小的小时
System.out.println(actualMaximum);
System.out.println(actualMinimum);
}
1.9 SimpleDateFormat
SimpleDateFormat
是一个以与语言环境有关的方式来格式化和解析日期的具体类- 进行格式化(日期—> 文本)、解析(文本—>日期)
public static void main(String[] args) throws Exception {
//1 创建实例
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//2 创建Date
//可以直接Date date = new Date();
Calendar instance = Calendar.getInstance();
instance.add(Calendar.MONTH, 10);
Date time = instance.getTime();
//3 格式化实例
String format = simpleDateFormat.format(time);
System.out.println(format);
//4 解析(把字符串转成日期)
Date parse = null;
parse = simpleDateFormat.parse("1992-09-21");
System.out.println(parse);//Mon Sep 21 00:00:00 CST 1992
}
2.0 System类
- System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17DaIxRK-1650987610827)(…/…/…/…/Application Support/typora-user-images/image-20220426230452257.png)]
public static void main(String[] args) {
//1 arraycopy:数组的复制
//src:原数组
//srcPos:从那个位置开始复制0
//dest:目标数组
//destPos:目标数组的位置
//length:复制的长度
int[] array = {10, 2, 3, 4, 2, 1, 5, 25, 3, 4, 2, 1, 0};
int[] dest = new int[8];
// System.arraycopy(arr,srcPos,dest,destPos,length);
System.arraycopy(array,0,dest,0,8);
for (int x : dest){
System.out.println(x);
}
//2 获取毫秒
long l = System.currentTimeMillis();
//3 退出 jvm
System.exit(0);
}