欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Java课程设计--年历显示.docx

    • 资源ID:682142       资源大小:53.27KB        全文页数:19页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java课程设计--年历显示.docx

    目录第1章课题简介11.1课题的目的11.2课题的要求11.2 .1输入输出的要求11.3 .2程序实现的功能要求1第2章概要设计22.1整个程序的模块结构及流程22.2输入数据合法性的检测及初步处理22.3各个操作功能的描述22. 3.1显示年历功能23. 3.2显示月历24. 3.3计算两个日期之间的距离3第3章程序功能的实现43.1 主函数的实现43.2 主要功能模块的实现53.2.1实现年历的显示53.2.2实现月历的显示83.2.3实现计算两个日期之间的天数9第4章调试及发现问题的解决12第5章程序测试及分析13第6章总结18参考文献19第1章课题简介本次Java课程设计的题目是年历的显示并实现多个功能。1.1 课题的目的年历一直在中国的家庭中占有一席之地,传统的年历常为纸质的,不仅笨重,而且查看起来比较麻烦,随着时代的不断变迁,纸质年历早已被电子年历所代替,电子年历有多种功能,多功能日历不仅可以查看所需查看日期的全年日历和月历还具有计算日期与当前日期相差的天数,可以更加方便的为人们提供服务。1.2 课题的要求1.2.1 输入输出的要求(1)程序运行后会在页面显示一个菜单,用户可以通过输入各功能的相应数字选项进入相应功能。(2)用户通过键盘输入所需查询的日期。(3)用户每次输入数据后会显示相应的年历并在下面再次跳出菜单栏,方便用户的再次使用。(4)如果用户需要停止运行程序,也可通过菜单相应提示输入,即可结束程序的运行。如果用户输入有误,程序将自动提醒用户重新输入数据。(5)运行结果的输出应整齐、清晰,以便用户能够验证程序的正确性。1.2.2 程序实现的功能要求(1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。(2)输入年月,输出该月的日历。(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日;今天通过系统时间获取。第2章概要设计2.1整个程序的模块结构及流程根据课题要求,整个程序按功能可划分为显示年历、显示月历和显示两日期相差的天数三个功能。除上述主要功能模块之外,为更好地提供程序的人机交互能力,程序还提供了退出程序、显示错误输入等辅助模块。程序各功能模块的划分,及主要流程如图2T所示。显示年历,显示月历计算两个日期之间的天数。退出,图2-1功能流程图2. 2输入数据合法性的检测及初步处理在菜单选项中:若用户输入与菜单选项有误的选项,程序将提醒用户重新输入。在输入日其中:用户可以查询的年份从公元1年1月1日(格式为:yyyy-MMYd),若用户输入的格式有误,程序将抛出异常。2.3各个操作功能的描述2.3.1显示年历功能首先将输入扫描器中的String类型,再用Integer,parselntO方法将String类型转换成int类型并赋值给year在定义一个int类型fd,并用自己定义的方法firstDayO将year的值作为参数输入得到该年的第一天是星期几,最后用两个for循环嵌套来打印标题和天数。2.3.2显示月历先按格式要求用扫描器输入所要查找的日期,将其赋值给String类型的temp,用ParSe()方法将String类型的temp转换成Date类型,并赋值给date,再用GregorianCa1endar中的方法SetTime()来设置输入的日期为当前GregorianCalendar的默认日期,在用GregorianCalendar中的方法getActualMaximumO来获取该月的天数,最后打印标题用两个for循环嵌套打印输出月历。2.3.3计算两个日期之间的距离先按格式要求用扫描器输入所要查找的日期,将其赋值给String类型的dl,用time包中的方法LoCalDate.now()来获取当前的系统时间,再用方法DateTimeFormatter.OfPattern()将时间对象转换成字符串,定义d2来存方法当前的系统时间对象,最后将两个String类型的dl和d2都转换成Date类型来计算,用方法getTimeO来得到dl和d2的可以计算的值,由于得到的值都是以毫秒来计数的所以在计算的时候要除以(24*60*60*100O)才能得到天数,由于用户可能输入的是以前的日期,所以要使用ifelse语句,如果得到的值是负的,那么将负值变成正值再输出,最后输出两个日期间隔的天数。第3章程序功能的实现3.1 主函数的实现先定义一个整数ChOiCe,然后进入程序的主循环。在主循环中,先打印菜单,再用scanner扫描器将输入的值赋值给choice,然后根据用户选择的菜单项,调用相应的功能模块,功能模块调用过程中或调用结束后,循环实现菜单项,直到用户输入“0”结束循环。publicstaticvoidmain(Stringargs)intchoice;outer:while(true)SyStem.out.println("多功能日历(请选择以下功能):);System.out.PrintIr("1.显示年历“);System.out.printin(z,2.显示月历);System.out.PrintIr1(3.显示距离今天的天数”);SyStem.out.print("请选择一项功能(按“0”退出):“);Scannerscanner=newScanner(System,in);choice=scanner,nextlnt();System,out.println();switch(choice)case 1:functionl();break;case 2:function2();break;case 3:function3();break;case0:breakouter;default:System.OUt.printIn("输入的选项有误,请重新输入!”);break;System,out.println();System.OUt.printIn("感谢使用!);)3.2主要功能模块的实现3.2.1实现年历的显示显示年历功能模块的实现:首先将输入扫描器中的String类型,再用Integer.parselnt()方法将String类型转换成Int类型并赋值给year在定义一个int类型fd,并用自己定义的方法firstDay()将year的值作为参数输入得到该年的第一天是星期几,最后用两个for循环嵌套来打印标题和天数。publicclassYearCalendarstaticintyear,monthday;/得到各月份的天数publicstaticintmonthDay(intm)switch(m)case1:case3:case5:case7:case8:case10:case12:return31;case4:case6:case9:case11:return30;case2:if(isLeapYear(year)return29;elsereturn28;default:returnO;publicstaticbooleanisLeapYear(inty)/计算该年第一天是星期几(1年1月1日是星期一,计算y年到它的天数和7取余来算星期几return(y%4-0&&y%100!=0)(y%400=二0);publicstaticintfirstDay(inty)longn=y*365;for(inti=1;i<y;i+)/计算y年到公元一年的年份中有多少个闰年,然后加1if(isLeapYear(i)n+;return(int)n%7;publicstaticvoidfunctionl()Scannersc=newScanner(Systen).in);SyStCn.out.print("请输入要查询的年份(格式:yyyy):,);Strings=sc.nextLine();year=Integer,parselnt(s);intfd=firstDay(year);System,out.println(z,11,z÷+year+年+);for(intm=1;m<=12;m+)System,out.println(z,11z,÷=+m+月+=);System,out.Printlri(日一二三四五六);for(inti=1;i<=fd;i+)System,out.print();)monthday=monthDay(m);for(inti=1;i<=monthday;i+)if(i<10)System,out.print(i+);elseSystem,out.print(i+);fd=(fd+1)%7;if(fd=0)System,out.println();System,out.println();3.2.2实现月历的显示显示月历模块的实现:先按格式要求用扫描器输入所要查找的日期,将其赋值给String类型的temp,用parse()方法将String类型的temp转换成Date类型,并赋值给date,再用GregorianCalendar中的方法SetTime()来设置输入的日期为当前GregorianCalendar的默认日期,在用GregorianCa1endar中的方法getctualMaximum()来获取该月的天数,最后打印标题用两个for循环嵌套打印输出月历。System.out.print(z,2>请输入需要查找的月份(格式:yyyy-MM):);Scannersc2=newScanner(Systen).in);Stringtemp=sc2.nextLine();DateFormatformat2=newSimpleDateFormat(,yyyy-MM,z);tryDatedate=format2.parse(temp);Calendarcalendar=newGregorianCalendar();calendar.setTime(date);intmaxDate=calendar.getActualMaximum(Calendar.DATE);System.out.PrintIn(日t一t二tt四t五t六”);for(inti=1;i<calendar,get(Calendar.DAYOFWEEK);i+)(System,out.print(,t,);for(inti=1;i<=maxDate;i+)System,out.print(i+t);intw=calendar,get(Calendar.DAYOFWEEK);if(w=Calendar.SATURDAY)System,out.print(,n,);calendar,add(Calendar.DATE,1);catch(ParseExceptione)System.out.Println(输入的日期有误!);e.PrintStackTrace();System,out.println();3.

    注意事项

    本文(Java课程设计--年历显示.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开