package com.classLesson4;
import java.math.BigDecimal;
public class Demo07 {
public static void main(String[] args) {
//面试题
double result = (1.4-0.5)/0.9;
System.out.println(result);
//输出本该是1,但是数据类型是double,结果输出不准确
//实际应用中需要精确运算,而double是近似值存储,不符合要求,需要借助BigDecimal
BigDecimal bd1=new BigDecimal("1.0");//必须用以字符串的形式赋值
BigDecimal bd2=new BigDecimal("0.9");//必须用以字符串的形式赋值
//减法
BigDecimal r1=bd1.subtract(bd2);
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("10").divide(new BigDecimal("3"),1,BigDecimal.ROUND_HALF_UP);
System.out.println(r5);
//10/3除不尽,如果运行会报异常,所以需要后面的截取x位数组
}
}
package com.classLesson4;
import java.util.Date;
public class Demo08 {
public static void main(String[] args) {
//今天
Date date=new Date();
System.out.println(date.toString());
System.out.println(date.toLocaleString());
//昨天
Date date1=new Date(date.getTime()-(60*60*24*1000));
System.out.println(date1.toLocaleString());
boolean b1=date.after(date1); //今天在昨天后面
System.out.println(b1);
boolean b2=date.before(date1); //今天在昨天前面吗?
System.out.println(b2);
//compareTo
int i=date.compareTo(date1);//今天减去昨天是正数还是负数,正数返回1,负数返回-1
System.out.println(i);
//比较相等equals
boolean b3=date.equals(date1);
System.out.println(b3);
}
}
Calendar:日历
注意calendar的创建方法、calendar获取时间的方法、怎么设置时间
package com.classLesson4;
import java.util.Calendar;
public class Demo09 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance(); //因为calendar的修饰符是protected,所以无法直接创建对象
//需要用到Calendar.getInstance
System.out.println(calendar.getTime().toLocaleString());
//使用getTime让他变成一个Date,然后在打印时间
System.out.println(calendar.getTimeInMillis());//这是从1970年到现在的毫秒值
//2.获取时间信息
//年
int year = calendar.get(Calendar.YEAR);
//月 从0-11 所以实际月份比这里大1
int month = calendar.get(Calendar.MONTH);
int day= calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.println(year+"年"+(month+1)+"月"+day+"日"+" "+hour+":"+minute+":"+second);
//修改时间
Calendar calendar2=Calendar.getInstance();
calendar2.set(Calendar.DAY_OF_MONTH,12);
System.out.println(calendar2.getTime().toLocaleString());
//add方法 修改时间
calendar2.add(Calendar.HOUR,1);
System.out.println(calendar2.getTime().toLocaleString());
int max = calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);
int min = calendar2.getActualMinimum(Calendar.DAY_OF_MONTH);
System.out.println(max);
System.out.println(min);
}
}
SimpleDateFormat
package com.classLesson4;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.SimpleTimeZone;
public class Demo10 {
public static void main(String[] args) throws Exception{
//1.SimpleDateFormat对象y年M月
//年y 月M 日d 时H 分m 秒s 毫秒S
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date = new Date();
//格式化date 把date转成字符串
String str = sdf.format(date);
System.out.println(str);
//把字符串转成日期w
Date date1=sdf.parse("2000年09月30日 12:12:12");
System.out.println(date1);
}
}
方法都是静态的,可以直接使用不用创建对象
public static void main(String[] args) {
//arraycopy 数组复制
//src:源数组
//srcPos:从哪个位置开始复制
//dest:目标数组
//destPos:复制到目标数组的哪个位置
//length:复制的长度
int[] arr={10,11,12,13,14,15,16,17};
int[] dest=new int[8];
System.arraycopy(arr,5,dest,0,3);
for (int i:dest
) {
System.out.println(i);
}
}
long start=System.currentTimeMillis();
int result=0;
for (int i=-999999999;i<999999999;i++){
for (int j = -999999999; j < 999999999; j++) {
result=i+j;
}
}
long end = System.currentTimeMillis();
System.out.println(result);
System.out.println("用时:"+(end-start));