题目:
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
算法分析:
核心算法就是利用Java提供的date类型,利用SimpleDateFormate来将输入的日期转化为date对象,利用时间戳做差计算出相隔天数,注意:该种方法最大优势在于不用考虑平闰年对天数的影响。将相隔天数对5求模,利用得到的余数,根据“三天打鱼两天晒网”的区间即可判定该日属于那一类型。
概要设计:
该程序实现分为两个途径:通过控制台输出结果,通过文件输入日期,通过文件输出结果。控制台方式,需要调取show方法,来进行输入验证与结果计算。文件输入方式,需要调取fileOper方法来对文件进行操作。
测试:
用户的输入规则规范:
正确规则输入:
调试:
(1)输入规则
用户输入:2001-1-1。
用户输入:2008
(2)按规则输入:2019-12-12
心得体会
三天打鱼两天晒网的算法本质上将相隔天数对5求模,利用得到的余数,根据“三天打鱼两天晒网”的区间即可判定该日属于那一类型。通过该程序的学习,我回顾了Java工具类及io操作,将所像内容变为程序代码,这个过程中,我通过查阅资料,了解如何提升程序性能,优化程序结构,进而加深了对程序方法学的理解。
通过将程序从构想到实现的整个过程,我也对Java基础知识的学习进行了回顾。在编程学习过程中,学会知识不算懂,而通过代码运用知识才算真正学会了。这提醒我不能只是看会编程,更应该能自己敲代码运用编程。