java学习day23---(枚举/BigDecimal类/异常)
万年历题目思路
万年历 1.提醒用户键盘录入一个指定格式的日期 yyyy-MM-dd
2.如果用户录入的日期格式不符合要求,提示录入格式有误重新录入
3.展示用户录入的该天的信息
年
月
日
星期几
本周是本月第几周
是本年的第几天
本年的生肖
是本年第几周
本年是平年还是闰年
符合要求的字符串
1.必须要求字符串按照”-“切割,分为三部分
2.每一部分的字符串长度有限
第一部分 年 四位长度字符串
第二部分 月 两位长度字符串
第三部分 日 两位长度字符串
3.年的四位数,必须是0~9之间
4.月的两位数,必须是0~9之间,但不能等于00、大于12
先限制输入的是数字,在用Inter.patseInt(String s)把这两位字符转成数字,判断是否大于12
5.日的两位数,同上
6.判断大小月,小月不能为31天
利用数组int[] {4,6,9,11} 判断月在不在里面,在里面并且日为31就提示输入不对
或者利用switch()判断
7.对于2月份的处理
平年2月份 28天
闰年2月份 29天
闰年:能被4整除不能被400整数,或者能被400整除
使用if判断
判断了一个正确的格式,把这个字符串变成Calendar类型
Calendar.set(int year,int month,int day)
Calendar.setTime(Date date)
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd")
Date date=new Date()
date=sdf.paser(str)
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
取星期几 利用字符串数组
String[] arr{"","周日",“周一”.......};
取本年生肖
浮点类型计算精度
BigDecimal类,用在财务等地方
可以按照四舍五入的规则对于小数点后指定位置进行保留
具备任意精度的小数保留
setScale(int 枚举)
枚举(Enum)
用来表示多种情况
和类、接口是同级别的
都用大写表示情况类型
异常处理
用面向对象的形式来描述异常
Throwable类是所有异常类的超类,作为一个标记异常的存在,类中定义了有关异常共性的东西,很多获取异常的方法
错误是程序员不能解决的
异常是可以处理的,处理完不影响程序执行
Exception类(异常类)
1、编译异常
代码在执行过程中,对数据进行检测是否符合要求,需要表明格式有误这种情况,需要创建一个编译异常来表明改问题的发生
必须给出处理方案:
(一)抛出处理
(二)捕获处理
2、运行异常
除了编译异常以外的,如空指针,索引越界,类型转换
不强制处理,有默认抛出处理,也可以自己捕获处理
throw抛出
捕获处理
try{被监控的代码}catch(异常类型 变量名){ 处理代码}
在try中哪一行代码被捕获到,这一行之后的代码都不会运行
会立即找catch里的代码执行
catch可以使用一个父类异常接收多个异常
类里面方法覆盖的异常抛出,子类不能抛出比父类更大的编译异常,运行异常不受影响

浙公网安备 33010602011771号