(1)浮点数据做运算,会丢失精度。所以,针对浮点数据的操作建议采用BigDecimal。(金融相关的项目)
(2)构造方法
A:BigDecimal(String s)
(3)成员方法:
A:加
BigInteger类对象1.add(BigInteger类对象2);
B:减
BigInteger类对象1.subtract(BigInteger类对象2);
C:乘
BigInteger类对象1.multiply(BigInteger类对象2);
D:除
BigInteger类对象1.divide(BigInteger类对象2);
7:Date/DateFormat(1)Date是日期类,可以精确到毫秒。
A:构造方法
Date()
Date(long time)
B:成员方法
getTime()
setTime(long time)
C:日期和毫秒值的相互转换
举例:你来这个世界多少天了
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DateDemo {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的出生日期:(如1995-11-23)");
String birthday = sc.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse(birthday);
long time = d1.getTime();
Date d2 = new Date();
long time2 = d2.getTime();
int days = (int)((time2-time)/1000/60/60/24);
System.out.println("您来到这个世界已经有"+days+"天了!");
}
}
A:SimpleDateFormat(String pattern) 给定模式
yyyy-MM-dd HH:mm:ss
B:日期和字符串的转换
a:Date -- String
format()
b:String -- Date
parse()
C:举例:
制作了一个针对日期操作的工具类。
package cn.itcast_04;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 这是日期和字符串相互转换的工具类
* @author 夜斗
* @version V2.0
*
*/
public class DateUtil {
private DateUtil() {
}
/**
* 这个方法的作用就是把日期转换成一个字符串
* @param d
* 被转换的日期对象
* @param format
* 传递过来的要转换的格式
* @return
* 格式化后的字符串
*/
public static String dateToString(Date d,String format){
/*SimpleDateFormat sdf = new SimpleDateFormat(format);
String s = sdf.format(d);
return s;*/
return new SimpleDateFormat(format).format(d);
}
/**
* 这个方法的作用就是把字符串转换成一个日期
* @param s
* 被解析的字符串
* @param format
* 传递过来的要转换的格式
* @return
* 解析后的日期对象
* @throws ParseException
*/
public static Date stringToDate(String s,String format) throws ParseException{
//类似于上一方法
return new SimpleDateFormat(format).parse(s);
}
}
8:Calendar
(1)日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
(2)如何得到一个日历对象呢?
Calendar rightNow = Calendar.getInstance();
本质返回的是子类对象
(3)成员方法
A:根据日历字段得到对应的值
Calendar类对象.get(Calendar.YEAR); //获取年
Calendar类对象.get(Calendar.MONTH); //获取月 MONTH从0开始,所以还需要+1
Calendar类对象.get(Calendar.DATE); //获取日期
B:根据日历字段和一个正负数确定是添加还是减去对应日历字段的值
C:设置日历对象的年月日
举例:
import java.util.Calendar;
public class CalendarDemo {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
//获取年
int year = c.get(Calendar.YEAR);
//获取月
int month = c.get(Calendar.MONTH);
//获取日
int day = c.get(Calendar.DATE);
System.out.println(year+"年"+(month+1)+"月"+day+"日");
//三年前的今天
c.add(Calendar.YEAR, -3);
//获取年
year = c.get(Calendar.YEAR);
//获取月
month = c.get(Calendar.MONTH);
//获取日
day = c.get(Calendar.DATE);
System.out.println(year+"年"+(month+1)+"月"+day+"日");
//五年后的10天前
c.add(Calendar.YEAR, 10);
c.add(Calendar.DATE, -10);
//获取年
year = c.get(Calendar.YEAR);
//获取月
month = c.get(Calendar.MONTH);
//获取日
day = c.get(Calendar.DATE);
System.out.println(year+"年"+(month+1)+"月"+day+"日");
c.set(2066, 5, 6);
//获取年
year = c.get(Calendar.YEAR);
//获取月
month = c.get(Calendar.MONTH);
//获取日
day = c.get(Calendar.DATE);
System.out.println(year+"年"+(month+1)+"月"+day+"日");
}
}