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可以使用一个父类异常接收多个异常

类里面方法覆盖的异常抛出,子类不能抛出比父类更大的编译异常,运行异常不受影响

创建自己的异常

posted @ 2021-07-30 20:56  墨衣i  阅读(140)  评论(0)    收藏  举报