日期计算器
一、 系统描述
完成日期计算器的编写。
系统功能:
1.输入日期,完成星期几的计算,并输出星期值
2.输入日期加天数,完成日期加/减天数的计算,并输出新日期
3.输入日期以及一个年月日,完成日期加/减该年月日的计算,并输出新 日期。
二、 实验要求和目的
1、理解并掌握图形界面的设计。
2、理解整体算法的思路,即actionPerformed()的算法。
3、输入日期,完成星期几的计算,并输出星期值(注意日期输入的合法性)
4、输入日期加天数,完成日期加天数的计算,并输出新日期(注意日期的合法输入,以及注意日期不能加日期,既第二次输入的只能是天数)
5、输入日期以及一个年月日,完成日期加/减该年月日的计算,并输出新日期。 6、进一步学习JAVA的编程思想。
三、 实验条件
编译器: Eclipse Java Oxygen
Java环境: JDK 1.8.0
操作系统: Windows 10 家庭中文版
四、思路分析以及详细设计
1. 为使程序美观,使用了多个JPanel和不同的布局管理程序(比如FlowLayout(流式布局)、BorderLayout(区域边框布局)、GridLayout(顺序依次排列))进行布局设计,同时限定了窗体的大小,防止用户无意改变窗口大小;
详细设计:
先利用FlowLayout设置用户界面上的屏幕组件的格式布局,然后使用BorderLayout将布局分为五个区域:北、南、东、西、中。利用GridLayout将中区域分割4*3,间隔10,10,用来存放数字按钮以及C和CE。东区域分割4*1,间隔10,10,用来存放+、-、/、=,北区域存放文本框。且将setResizable设为false表示生成的窗体大小是由程序员决定的,用户不可以自由改变该窗体的大小。
2. 封装了一个创建数字按钮的方法getNumberButton(int n),可以快速地进行增加数字按钮的操作;
详细设计:
利用JButton库创建按钮,并设计函数为其添加事件。
3. 为将文本框中的字符串转换为"yyyy年MM月dd日是 E"的形式编写了toStringDate()方法,其中包括日期输入错误的异常处理。
详细设计:
先利用SimpleDateForma和parset把String:"yyyy/MM/dd" 类型转换成Date类型,再利用SimpleDateFormat的format,将Date类型转换为"yyyy年MM月dd日是 E"的形式。
4.为了区分日期加的天数还是年月日,编写了isNumber和isDate俩个函数去进行格式判断。