今天修改了项目中的标准器的添加方法,将检定时间设置为一年后.内容虽少,但对于编程起步的我,依然收货不小.
问题描述
标准器实体中,有一个字段是 检定有效期至,也就是下一次检定日期,检定的周期是一年,所以,在新增一个标准器的时候,要将该字段设置为一年以后.

实现构想
由于有上一次的经验,所以知道可以很容易的获取系统时间,然后将年份加一,月和日不变,这样就将 检定有效期至 设为一年以后.
初步解决
有了上面的构想,代码实现就比较简单了.直接利用 calendar 类来帮助获取当前时间,进而获取年月日.
|
|
这里需要解释一下的是,利用calendar类得到的对象和项目中的关键子类型不同,所以中间将年月日取出来进行了拼接,得到需要的类型.
而Date()这个构造函数的参数一个参数-year,它的范围是0-8099,0代表1900年,所以上面的年份减去了一个1900.
代码重构
显然,上面的代码并不够简介,而且也并不容易理解.时间一久,这个代码是怎么回事,可能自己还要想上好半天.怎么办?重构!
首先, calendar 这个类有一个 add 函数,它可以直接实现年份加一,所以,不用将年份获取出来再加一了;
|
|
其次, calendar 对象的 getTimeInMillis函数,可以直接将Calendar类型转换为我们需要的类型,所以,已不用费劲的拼接了.
|
|
重构后的代码:
|
|
很明显,重构后的代码比开始的代码更加简介,更加便于理解与维护.
总结
这次暴露的主要问题是,对于 java 这门语言的使用还不够熟练,所以开始使用方法错误.
这次的主要收获:
1.好的代码要简洁,要易于理解.
2.对于编程语言的熟练度,影响你解决问题的速度.
3.多尝试看官方API文档.
关于calendar类的官方文档参考:https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html