欢迎来到天天文库
浏览记录
ID:30769068
大小:166.37 KB
页数:12页
时间:2019-01-03
《java日历程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java日历程序设计这个软件容错率极高,随便怎么搞都不会挂掉!显示也是比较牛逼的。下面是我写的全部代码:packagecom.xykj・calendar;importjava・util・Seanner;publicclassMyCalendar{/***日历的设计1>日历的显示:一个日历6行,每周7天,需耍创建一个存放42个字符的数组*2、月份该显示的天数1、3、5、7、8、10>12显示33.天,2月显示平年28,闰年29天4、6、9、显示30天*3、这个月的第一天是星期几是日历要处理的最关键和最困难的问题!下面详细解释:*(1)要理解日期的星期数是连续的,比如今天是星期天,明天不管
2、是不是下个月,它都是星期一*(2)一般日历设计都是从1900年1月1日开始的,这一天是星期*(3)那么1月8号也是星期一,相当于距离2900年1月1日的7的所有倍数的天数都是星期一,这就涉及到求模的问题了,天数总和对7求模,*以此类推,结果为1时,这个月的第一天就是星期二以此类推,结果为2吋,这个月的第一天就是星期三。。。*以此类推,结果为5时,这个月的第一天就是星期六以此类推,结果为6时,这个月的第一天就是星期天*(4)接下来就是天数的计算:平年共365天,闰年共366天(5)接下来举个详细的例子,比如查询2000年的8月的日历*这里就要计算1900年1月1日到2000年的8月1日有
3、多少天,求得sumDaysumDay%7求得的结果余几,那么8月1日就是星期(几加1)*4、这里为了程序设计得好看,会用方法比较多**/staticintinputYear;//输入的年份staticintyears=0;//输入的年份到1900年经过的年份staticintinputMonth=0;//输入的月份staticintinputDay=0;//输入的口staticintdaySum=0;//从1900年1月到所求年月经过的天数总和staticintdayOfYear=0;//这一年的第几天staticSeannerscanner=newSeanner(System・in)
4、;staticStringisContinue="4";//4继续循环输入,否者不会staticint[]monthDayArr={31^28,31^30,31^30^31^31,30,31,30,31};//一年所有月份的天数publicstaticvoidmain(String[]args){while(isContinue.equals(n4")){//循环语句judgeYearAndMonth();//获取年月//封装三个方法(判断天数、显示日历、询问循环)的方法,//因为选择上年、下年、上月、下月之后都要用到,所以搞在一起很方便judgefunction();}System.
5、out.println(H感谢您的使用!”);}//封装三个方法的方法,因为选择上年下年上月下月之后都要用到,所以搞在一起很方便privatestaticvoidjudgefunction(){judgeDays();//计算1900年1月1口到这个月经过了多少天shoi^CaLendar();//显示日历界面judgelscontinueO;//判断是否循环}//判断是否循环的具体代码privatestaticvoidjudgelscontinue(){System.out・printing***请选择您需要的操作:上个H!•/下个月3/上一年5/下一年2/4继续输入/退出0***”
6、);isContinue=scanner・next();while(!isContinue・equals("0”)&&!isContinue・equals(Nl")&&!isContinue.equals(H2H)&&!isContinue・equals(”3")&&!isContinue.equals(”4”)&&!isContinue.equals("5")){System.e厂厂.println(H请输入止确的选择:1上个月/3下个月/5上一年/2下一年/4继续输入/0退出”);isContinue=scanner・next();}switch(isContinue){caseT
7、://1上个月inputMonth--;inputMonth=inputMonth==0?12:inputMonth;//如果输入的是2月的上一月,那么自动变成12月inputYear=inputMonth==12?--inputYear:inputYear;//年数也要减1//如果输入的是1900年1月是上个月,口期会变成1989年12月,明显是不对的if(inputYear==1899){//表面看上去页面没动,实际跳转了一次,而且可以继续
此文档下载收益归作者所有