日历显示系统
桌面日历系统的设计与实现
本次毕设AWT和SwingGUI都有涉及。包括:AWT包和事件 模型、常用的AWT包中的容器组件和控件组件以及布局 管理器,和Swing包中的组件类。
5.研究方法
通过对人们日常生活和工作的安排,分析形成基础报告, 参考现有的桌面日历系统寻找不足,同时查阅中国的历 法,完成分析需求,编程采用MVC设计模式,将模型、 视图、控制器分开,降低耦合度。
7.系统总功能模块图
8.系统的接口实现方案
系统实现了ActionListener和MouseListener接口。
ActionListener用于接收操作事件的侦听器接口。对处理 操作事件感兴趣的类可以实现此接口,而使用该类创建 的对象可使用组件的 addActionListener 方法向该组件注 册。在发生操作事件时,调用该对象的 actionPerformed 方法。
2
2.研究内容
桌面日历系统基于对现实生活中人们对工作和生活日常 安排的分析,以记录和标注在一定的时间内的工作日程, 特殊日期,假期等。经过计划标注后可以在日期之前或 者当日提醒使用者,可以解决事物的计划安排,不会忘 记特殊的日期,进一步的提高了人们的生活水平和生活 质量。以下是本研究的主要内容、能在手机系统中经常见,但在电脑 上很少有,这对于办公的人来说就有一些不便。例如人在非常 忙的时候经常会忘记日常定点工作,这个时候有了日历系统的 闹铃功能,就能轻松解决。用户可以设置很多闹铃,提示的方 式可以是音乐,如果音乐不方便,也可以使用弹窗的方式。还 有一个皮肤功能也是有一些新意的,人在长时间看一些东西的 时候会产生视觉疲劳,工作的精神也会受到影响,这个时候换 一种自己喜欢的界面皮肤,或许会让人感觉格外清新,从而带 动工作的积极性,提高工作效率。
万年历原理
万年历原理
万年历是一种可以显示任意日期的日历,它的原理是基于天文学和数学的结合。
在古代,人们通过观察太阳、月亮和星星的运行轨迹来制作日历,但这种日历只能粗略地预测日期,无法准确地显示每一天的日期。
直到公元前2世纪,罗马天文学家克劳迪乌斯·托勒密提出了一种新的日历系统,通过观察太阳的运行轨迹,他设计出了一种可以显示每一天日期的日历,这就是我们今天所使用的万年历。
万年历的原理基于太阳和月亮的运行轨迹。
太阳的运行轨迹是365.25天,而月亮的运行轨迹是29.53天。
通过这两者的结合,我们可以设计出一种可以精确显示
日期的日历系统。
在万年历中,将365天分为12个月,每个月的天数不同,通过
这种方式可以准确地显示每一天的日期。
除了太阳和月亮的运行轨迹外,万年历还考虑了闰年和闰月的影响。
由于太阳
的运行轨迹是365.25天,所以每隔4年我们就需要增加一天来弥补这个差距,这
就是闰年的概念。
而月亮的运行轨迹是29.53天,所以每隔一段时间我们也需要增
加一个月来弥补这个差距,这就是闰月的概念。
通过考虑闰年和闰月的影响,万年历可以精确地显示每一天的日期。
总的来说,万年历的原理是基于天文学和数学的结合,通过观察太阳和月亮的
运行轨迹,考虑闰年和闰月的影响,设计出一种可以精确显示日期的日历系统。
万年历不仅可以帮助人们记录时间,还可以帮助人们了解天文学的知识,是人类文明发展的重要成果。
日历系统毕业设计
电子日历系统的设计设计艺术学人机交互课程小组作业组员:杨景轶李伯杨张铎李众长1、设计思路电子日历系统主要是用于院系的日常事务,解决个人与集体的时间冲突等问题。
在确定题目之后,小组进行了简单的讨论,我们初步确定了我们的电子日历的一些基本特点:➢功能不求多,但求普适、方便、好用➢用户自定义以上四点是我们本次作业的主要方向,我们认为,校内使用的日历系统主要是用于会议、课程和特殊事务的,它在一定程度上可以与私人的日程计划表一类的时间管理系统进行结合,也就是将个人的事务(无论私事公事)与学校的工作教学事务进行结合,整理到一个平台上,这样一来方便了校内用户的使用,使得在个人维度上,时间管理能够更加有效地进行。
(1)界面风格简明、正式首先,该电子日历系统是在学校内部使用的,属于公共办公系统,因此它的界面设计必须正式、简洁,但同时需要在一定程度上做一些视觉效果。
因此下图的情况是我们想要尽力避免的:图1-1上图中的网页设计,正式有余,美观不足。
而什么样的美观效果是我们需要的呢?不用过于花哨,我们在日常生活中发现,校园网的登陆页面就是一个简单美观的典范,如下图所示:图1-2最终我们找到了一个集正式、简约、美观为一体的网页范本,那就是香港理工大学的官方网站。
其实港大、城市大学、浸会大学的页面都很符合我们的要求,由于篇幅限制,因此在这里还是只摘录理工大学的官网。
如下图所示:图1-3从理工大学的页面我们可以发现,整体效果是非常统一简洁的(再回想一下我们的图1-1即可更加容易理解这个简洁感),也非常美观,却并不繁杂。
那么我们的范本目标即是做出一个能够平衡美观和信息于一体的校内电子日历系统。
(2)与用户需要经常使用的邮件系统、短信系统、SNS等做一定的结合其次,我们认为,如果把该日历系统和人们的社交网络进行结合,也许会有很好的效果。
同样的,我们在日常生活中发现,北邮的很多辅导员都会在人人网上与学生进行互动,很多的通知、公告也会通过他们的人人状态或日志来发出。
日历管理系统总结
项目总结--王明这次项目收获很多,和同学的交流很多,从交流中学到很多知识。
一、功能简介:1.用户管理用户管理实现了增删改查,以及条件查询。
条件查询:可以按特定条件查询,如年龄,用户名,真实姓名。
而且做了简单的数据验证,例如年龄只能输入数字,如果输入非数字的话,表单在提交时会提示错误,而且表单提交失败。
如果输入正确的话,表格则会刷新,显示条件查询的结果!2.日志管理日志管理实现了对日程的管理,其中用颜色区分了上月,下月。
这里可以留作以后的扩展接口,如需要对不同月份进行区分的时候就可以用到。
而且对当前日也添加了特殊的样式。
对于每一日的日程又进行了进一步的列举,实现了进程的增删改查,并且也对其进行了数据验证,其中日期的选择是用了插件。
遗憾的是,没有做今日以前的日期比对!二、有些知识可以在以后的后台框架中用:1.数据库链接(DBUtil.javaDBUtil.java,DBProperties.javaDBProperities.java),以及ServletListener.javaServletListener.java;2.验证码(RandomValidateCode.java,ImageServlet.java);3.表格插件flexGrid(FindUserServlet.java,query.jsp,PagerBean.java,UserDao.java,还有自己写的条件查询,以后可以用来参考) 4.弹出框,这个我感觉还不是很好,还可以找替代品5.网站后台框架,index.jsp,layout.css forms.css common.css;6.数据验证,这次做的并不是很完美,等有时间好好的找一个插件学学,或者封装一个适合自己的7.MD5加密Md5.java;8.日历类,自己写的也比较凌乱,需要继续优化;9.Web.xml的配置(尤其是jsp页面的直接拦截) web.xml;10.登陆拦截器,这次登陆拦截器的逻辑思维搞的并不是很清楚,但主体功能也都做了,可以参考,有时间还得继续想想自己的逻辑;11.Session的应用(用户的显示等等);12.程序的思想:(从前往后一步一步的分析,以及其中页面间的交互、数据传递等等,以及是否支持可扩展);13.界面的友好性,数据校验,用户体验等等都是需要考虑的问题;包括404页面error.jsp;14.所有页面公共部分的定义taglibs.jsp15.项目的层次性三、遇到的问题:1.登陆拦截逻辑不清楚;(尚未完全解决);2.数据验证没有很好的用插件,自己验证的也不够完全;3.一开始程序的分析不够,自己的判断也并不很准确,项目的具体实施过程中仍遇到很多问题;4.项目的可扩展性、灵活性不强,如果要增加需求,或有需求更改时,会比较被动,吃力;5.界面的美观性,人机交互体验等等都做的不是很好,还有待进一步完善这方面的知识;6.面向对象编程的思想不够深入,很多代码还是要靠后期的整合,一开始为了赶进度,会牺牲某方面。
课程设计-- 网上日历系统
1 引言1.1 课题背景日常生活的繁忙,逐渐加快的生活节奏,使得计划在生活中越来越重要。
而互联网的发展,也使得使用网络生活的人越发普及。
本项目经过一定的研究和构思,决定将计划和互联网结合,让人们在上网的同时可以关注自己以后所要完成的事,更好的安排自己的生活时间。
1.2 课题内容课程设计主要内容是建立一个与制定未来活动计划的数据库,并用JavaWeb 技术实现对该数据库的数据进行相应的增删查改等功能。
主要分成以下几个阶段:(1)需求分析阶段。
了解一个日历系统所应具备的所有基本功能,将这些功能整合后加深对该系统的了解,深刻理解我们的设计目标和基本要求,设计出相应的项目基本结构。
(2)概念设计阶段。
实现数据抽象,了解局部视图设计及视图的集成。
在此阶段开发人员将对数据库建表有一个整体的概念掌握;(3)逻辑结构设计阶段。
根据(2)中得出的所有表格确定结构逻辑;(4)在数据库中建立该系统需要的表格。
然后在向这些表格输入数据,完成了数据库的基本建立工作;(5)利用JavaWeb技术设计知识进行日历系统各个部分的设计,实现数据库与程序代码的互连,从而实现了使用该系统的查询日历和活动、增加活动事项、编辑和删除活动事项。
至此,该订票系统基本完成,只需经过反复调试,不断完善该系统的各个细节,就能得到一个与用户需求高度吻合的系统。
2 设计思路2.1 需求分析(1)信息要求信息要求即指需存储的数据。
在系统中需要存储活动信息。
(2)功能要求活动信息管理:可以添加新活动事项、修改现有活动事项、删除活动事项。
日历管理:可以通过当前的系统时间进行查询当月的活动事项。
(3)安全性与完整性要求安全性要求:访问数据库时需要输入登陆帐号和密码。
完整性要求:根据日历系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障引起的数据不一致。
2.2 总体设计说明2.2.1 系统框架图此次程序需设计为网页程序,其中确保与数据库之间的正确联系为主要目的。
北邮-电路课程设计:数字日历(new)
以上,均没有实验成绩。报告成绩占总成绩的20%。
38
电路课程设计:自动数字日历
功到绩优
39
每一部分电路安装调试完毕后,不要急于通电,要认真检查接线 是否正确,包括错接、少线和不接;
11
电路课程设计:自动数字日历
c\数字系统的调试:首先必须明白调试对象的工作原理和电路 结构,明确调试的任务,遵循测量、分析、调试、再测量的规 律; d\系统中的噪声:电源内阻和接线阻抗所形成的公共阻抗可 能使一个集成电路的噪声到达另一个集成电路。
12
电路课程设计:自动数字日历
前级电路
后级电路
Rd
地线除了具有电阻外,还有电感。各级电流流过 公共地线时可能产生耦合而形成自激振荡(正反 馈)或信号干扰。
这些干扰信号是不确定的。常在电源和地之间接 入几十微法的电容。
13
14
电路课程设计:自动数字日历15Βιβλιοθήκη 电路课程设计:自动数字日历
16
电路课程设计:自动数字日历
六、计算机辅助电路设计与仿真
学会使用EDA仿真软件workbench来辅助电路的设计和调 试。 multiSIM(EWB的最新版本)软件:是Interactive Image Technologies Ltd在20世纪末推出的电路仿真软件。其最新 版本为multiSIM12
34
电路课程设计:自动数字日历
进实验室之前,安排两次答疑。时间:周二下午:2:00-4:00;
周三下午:2:00-4:00;地点:4-123。 3、实验室开放时间:8:30 - 4:30
地点: 4-116(506、507班),4-238(509、508班)
电子时钟日历系统82558253讲解
计算机科学与技术学院硬件课程设计报告姓名:学号:专业:计算机科学与技术班级:设计题目:电子时钟万年历成员:指导教师:王凯职称:副教授2013年10月19 徐州课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月日摘要计时精确的电子时钟日历在我们生活中能处处能见到。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
本次课程设计我们做的是电子时钟日历,通过使用LCD液晶显示屏显示时间,脉冲是通过可编程8253芯片来提供的,其时间是通过8255来控制显示的,4*4数字键盘将要修改的时间提供给8255芯片,然后8255芯片控制LCD液晶显示屏修改显示的时间。
流程报告中有以下几个方面:任务设计与要求、总体方案、硬件设计、软件设计、结论及试验体会。
目录1 设计任务与要求 (2)1.1 提出问题 (2)1.1.1分析问题 (2)1.2.2解决问题 (2)2 总体方案 (2)2.1 总体方案概述 (3)2.2 8255芯片简介 (5)2.3 8253芯片简介 (8)2.4 液晶屏LCD简介 (14)3硬件设计 (10)3.1实物连接图 (17)3.2硬件电路图连接 (11)4 软件设计 (17)4.1原理框图 (17)4.2软件设计模块 (20)4.3 软件设计问题分析 (20)4.4体流程图 (20)4.5程序清单与注释 (21)4.6验结果 (43)5结论 (45)6体会 (45)7参考文献 (46)1 设计任务与要求1.1提出问题电子时钟日历是采用数字电路实现对年、月、日,时、分、秒、星期,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、实时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
电子万年历设计
电子万年历设计摘要单片机在电子万年历的应用已是非常普遍了,本设计是一个基于AT89C58单片机的日历显示系统,本设计能显示公历年、月、日、星期,以及时、分、秒、温度、星期等信息,而且还提供了农历信息,具有调整时间,温湿度采集,闹钟及个性化的闹铃等功能。
系统所用的时钟日历芯片DS1302具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。
采用AT89C 58单片机的万年历系统可以很好的改善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。
此系统计时精确,可以广泛应用在生活,学习和工作等任何领域,并且起到重要作用。
关键词温湿度传感器;DS1302 ;数码管显示;语音模块The design of electronic calendarABSTRACTThe monolithic integrated circuit in the electronic permanent calendar's applications already was very common ,and this design was based on AT89C58 monolithic integrated circuit's calendar display system, which could display information as previous calendar years, the month, the date ,the hour ,the minute ,the second ,the temperature ,the week and so on ,which also supplied information of the lunar calendar ,which functions contains adjusting the time ,the acquisition of temperature and humidity , alarm clock and personalized alarum and so on. The system uses clock calendar chip DS1302 has the advantages of the high performance, the low power dissipation, the simple connector, simplified this system circuit, and the programming is convenient, meanwhile the function is also very powerful . Adopt AT89C58 monolithic integrated circuit's permanent calendar system instead of traditional to use the analogous circuit which causes to be inaccurate time, unreliable, uniformity bad and so on questions. This system keeping time is precise, may widely applied in the life, the study ,the work and so on, and plays an important role.KEY WORDS Temperature and humidity sensors;DS1302 ;Digital display; V oice module目录摘要 (I)ABSTRACT (II)前言 (1)1. 系统概述 (2)1.1电子万年历的简介 (2)1.2电子万年历的设计要求 (2)1.3整体设计 (2)2. 电子万年历的硬件设计 (4)2.1主控模块设计(MCU) (4)2.2时钟芯片模块的设计 (4)2.3看门狗模块设计 (5)2.4温湿度模块设计 (6)2.5显示、按键模块设计 (7)2.6电源模块设计 (8)2.7语音模块设计 (10)3. 电子万年历软件设计 (14)3.1阴历转换算法 (14)3.2主程序设计 (14)3.3子程序设计 (15)4. 整体系统调试 (17)4.1硬件的调试 (17)4.2设计优缺点 (18)参考文献 (19)附录一原理图 (20)致谢 (22)前言现在是一个知识爆炸的新时代,新产品、新技术层出不穷,电子技术的发展更是日新月异。
电子实时时钟万年日历系统-单片机课程设计(含电路图、流程图、汇编语言)
一、题目:电子实时时钟/万年日历系统二、功能要求:1.基本要求:⑴显示准确的北京时间(时、分、秒),可用24小时制式;⑵随时可以调校时间。
2.发挥要求:⑴增加公历日期显示功能(年、月、日),年号只显示最后两位;⑵随时可以调校年、月、日;⑶允许通过转换功能键转换显示时间或日期。
三、方案考虑:1、硬件方案:⑴显示器采用6位LED数码管(共阳),可分别显示时间或日期。
⑵显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。
但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。
可采用74LS244或者晶体管;其中74ls244是用来驱动段选码,晶体管是驱动位选码。
⑶采用“一键多用方案”,以减少按键数目。
本方案采用了4按键。
⑷整体上要考虑:结构简单、布局美观、操作方便、成本低廉。
2、设计电路图如下:3、元件清单:(我们使用的是TX-1C开发板)⑴ 89C52 1个⑵IC座(40脚) 3个(其中1个用于接插89C51、2个用于接插LED段数码管)。
⑶ 74LS244 1个(用于驱动6个共阳的LED段数码管)。
⑷ IC座(20脚) 1个(用于接插74LS244)。
(5)显示器:LED_8段数码管(共阳型)6个三极管:(6)PNP(8550)6个(用于驱动6个共阳型LED段数码管)。
(7)微型开关:3个(其中1个用于复位电路、其它用于键盘)。
(8)晶体振荡器(12MHz):1个(用于振荡电路)。
(9)电阻器:⑴ 3KΩ 1个(用于系统复位电路)。
⑵ 1KΩ 6个(用作PNP三极管基极电阻)。
⑶ 100Ω 7个(驱动器用作74LS244输出限流电阻)。
(10)电容器:⑴ 10μF1个(用于系统复位电路)。
⑵ 30 pF 2个(用于系统振荡电路)。
(11)其它:⑴万能电路板(10×15):1块⑵焊锡条: 2米⑶带插头、座的电源端子: 1条⑷各种颜色外皮的导线:各1米(12)工具:1.电烙铁:1把2.剪钳:1把3.镊子:1把4.万用表:1个(13)设备:编程器(MEP300或TOP851)6个4、软件方案:(1)使用全汇编编写(2)时钟基准时间由单片机内部定时中断来提供,定时时间应该乘以一个整数得到,且不宜太长或太短,最长不能超过16位定时器的最长定时时间,最短不能少于定时中断服务程序的执行时间。
电子实时时钟万年日历系统-单片机课程设计(含电路图、流程图、PCB图、汇编语言)
摘要围绕电子钟系统的设计与开发工作进行研究和实践,详细介绍了电子钟系统的整体结构、硬件设计、软件设计,系统方案以及其的开发和具体实现。
介绍一种基于在系统可编程技术和C51编译器配有集成开发的新型电子钟的设计方法,阐述了其工作原理和软硬件设计。
在硬件上,用KEIL公司的C51大规模集成芯片对其外围电路进行集成,用1片8051实现了几十片分离元件才能实现的功能,几乎将整个系统下载于同一芯片中,实现了所谓的片上系统,从而大大简化了系统结构,增强了系统的可靠性和性价比。
该电子钟特别适用于家庭、办公大楼、公共场所等。
关键词电子钟;单片机;硬件设计;软件设计ABSTRACTAround the electronic clock system design and development of the study and practice, details the electronic clock system overall, hardware design, software design, system solutions as well as the development and implementation. Introduction of a new technology based on in-system programming and C51 compiler equipped with an integrated development of new electronic clock design method, explains how it works and software and hardware design. In the hardware companies with KEIL C51 large-scale integrated circuit chip on its surrounding, to integrate 1 tablet 8051 implementation of scores of tablets separation components to implement functionality, almost the entire system for download on the same chip, implementation of the so-called SOC, thereby greatly simplifies system structure, enhances system reliability and high performance/price ratio. The electronic clock is particularly relevant for home, office buildings and public place, etc.Key words electronic clock; single-chip; hardware; software design目录1 系统总体设计方案 (4)1.1 设计课题任务 (4)1.2 功能要求说明 (4)1.3 总体方案介绍及工作原理 (4)2 硬件系统的设计 (6)2.1 系统各功能模块介绍 (6)2.2 系统电路图 (7)2.3 系统元器件清单 (7)3 软件系统的设计 (8)3.1设计使用单片机资源介绍 (8)3.2 软件系统各功能模块介绍 (8)3.3 软件系统程序流程框图 (9)3.4 软件系统的程序 (10)4 系统的仿真分析及结论 (11)4.1 系统设计的使用说明 (11)4.2 系统设计的仿真结果 (11)4.3 系统的误差分析 (12)4.4 设计体会 (12)4.5 教学建议 (13)参考文献 (14)致谢 (15)附录(1) (16)附录(2) (17)1 系统总体设计方案1.1 设计课题任务设计一个具有特定功能的电子钟。
万年历系统报告
程序设计(C语言)课程设计报告年级专业学号学生姓名指导教师二○一五年三月一、题目万年历系统二、目的通过此次综合编程实践,进一步熟悉和掌握C语言的基本知识、基本编程原理;学习用C语言开发应用程序的方法;进一步熟悉计算机程序设计的基本方法、步骤,培养设计、调试、测试程序能力。
三、程序功能介绍模仿现实生活中的挂历,当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。
当系统日期变到下一月时,系统自动翻页到下一月。
还可以对输入的日期进行验证是否正确并查询。
四、内容(1)功能界面介绍①在主函数实现功能界面的设计,显示系统当前月月历,提供功能的选择并调用相应函数来实现模块功能。
②显示系统当前日期的模块,实现在界面中显示系统当前的日期的功能。
③在月历中显示当前日的模块,实现当前日在月历中被不同颜色标注出来的功能。
④打印出y年m月第一天的日历的模块,实现确定月历中每个月开头第一天的开始位置并显示月历基本框架的功能。
⑤计算星期几的模块,实现计算出系统当前日期是星期几的功能。
⑥计算某月天数的模块,实现计算当前月有多少天的功能。
⑦判断是否为闰年的模块,实现判断当前日期所在年份是否为闰年功能。
⑧输入查询日期的模块,实现需要另外查询日期的输入并判断所属日期是否正确的功能。
(2)算法流程图(3) 程序实现(附程序代码和相应注释说明)#include<stdio.h> #include <time.h> #include<stdlib.h> #include<string.h> #include<conio.h> #include<ctype.h> #include<windows.h>int days(int y,int m); //计算y 年m 月有多少天void show(int year,int month,int day); //显示主界面void showCurrentTime(); //显示系统当前时间int week(int y,int m,int d); //计算y年m月d日是星期几void printfirstday(int y,int m);//打印出y年m月第一天的日历int isleaf(int y); //y年是否是闰年int checkYearAndMonth(int year, int month); //查找1——3000年中的一年的日历int checkinput();int checkDay(int year, int month, int day);int inputyear(void);void main(){char ch;showCurrentTime();printf("\n\n\t*****************************\n");printf("\t1.查看任意日期日历\n\t0.退出\n");printf("\t*****************************\n");printf("请选择:");while(1){scanf("%c",&ch);switch(ch){case '1':inputyear();break;case '0':exit(1);default:printf("选择错误,请从新选择!\n");break;}printf("\n\n\t*****************************\n");printf("\t1.查看任意日期日历\n\t0.退出\n");printf("\t*****************************\n");printf("请选择:");fflush(stdin);//清空输入缓冲区}}void showCurrentTime()/*显示系统当前时间*/{time_t nowtime;struct tm *timeinfo;int year, month, day;system("cls");printf("\n\t\t*****欢迎使用日历*****\n");printf("\n******************************\n");time( &nowtime );timeinfo = localtime( &nowtime );year = timeinfo->tm_year + 1900;month = timeinfo->tm_mon + 1;day = timeinfo->tm_mday;printf("当前日期:%d %d %d\n", year, month, day);printf("******************************\n");show(year,month,day);}void show(int year,int month,int day){int i=1;printf("%d年 %d月\n", year, month);printfirstday(year,month);for(i=1;i<days(year,month);i++){HANDLE hConsole;hConsole = GetStdHandle(STD_OUTPUT_HANDLE);if(day==i+1){SetConsoleTextAttribute(hConsole,236);}elseSetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);if(week(year,month,i+1)==6)printf("\t%d\n",i+1);else if(week(year,month,i+1)==0)printf("%d",i+1);elseprintf("\t%d",i+1);}}void printfirstday(int y,int m){int w;w=week(y,m,1);printf("日\t一\t二\t三\t四\t五\t六\n");switch(w){case 1:printf(" \t%d",1);break;case 2:printf(" \t \t%d",1);break;case 3:printf(" \t \t \t%d",1);break;case 4:printf(" \t \t \t \t%d",1);break;case 5:printf(" \t \t \t \t \t%d",1);break;case 6:printf(" \t \t \t \t \t \t%d\n",1);break;case 0:printf("%d",1);break;}}int week(int y,int m,int d){static int r[13]={0,0,3,3,6,1,4,6,2,5,0,3,5};int c,w;y%=400;if((y==0||y%4==0&&y%100!=0)&&m<3)c=5; else c=6;w=(y+y/4-y/100+r[m]+d+c)%7;return w;}int days(int y,int m){int d;switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break;case 4:case 6:case 9:case 11:d=30;break;case 2:if(isleaf(y))d=29;elsed=28;}return d;}int isleaf(int y){if(y%4==0&&y%100!=0)return 1;elsereturn 0;}int inputyear(void){int year,month,day;printf("请输入年份(例如2013.8.12),按esc退出:\n");scanf("%d.%d.%d",&year,&month,&day);if(checkDay(year, month, day)){show(year,month,day);return 1;}else{printf("输入有误\n");return 0;}}int checkYearAndMonth(int year, int month){int b = 1;if (year<1 || year >3000){b = 0;}if (month < 1 || month > 12){b = 0;}return b;}int checkDay(int year, int month, int day){int b = 1;int d=0;if(b = checkYearAndMonth(year,month)){d=days(year,month);if(0<day&&day<=d)return 1;elsereturn 0;}elsereturn 0;}(4)代码程序调试过程程序刚执行的界面选择退出后的界面选择查看任意日期日历后的界面输入要查询的日期后的界面输入错误日期后的界面选择不存在的选项时候的界面五、总结几天前的现在,当听到老师布置给我们的一些课程设计题目时,我们都蒙了,这么难的题目我们怎么会啊,我们都表示不满,抗议,可是一切都是徒劳,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一路肯定是异常的艰苦,但豁出去了。
基于单片机的万年历设计
题目:基于单片机的电子万年历设计基于单片机的万年历设计摘要随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
目前,单片机技术的应用产品已经走进了千家万户。
电子万年历的出现给人们的生活带来了诸多方便。
本设计是一个基于AT89S52单片机的日历显示系统,本设计能显示公历年、月、日,以及时、分、秒、温度、星期等信息,而且还提供了农历信息,具有调整时间,温度采集,闹钟及个性化的闹铃等功能。
系统所用的时钟日历芯片DS1302具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。
采用AT89S52单片机的万年历系统可以很好的改善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。
此系统计时精确,价格低廉,可以广泛应用在生活,学习和工作等任何领域,并且起到重要作用。
关键词:万年历;单片机;时钟芯片;温度芯片;公历转农历The Design of Electronic Calendar clock Based on Single-chipMicrocomputerAbstractAlong with the technical fast development, time passing, to from the view sun, the pendulum clock to the present electron clock, the humanity studies unceasingly, innovates unceasingly the record. At present, the monolithic integrated circuit technology's application product already entered everyone. The electronic ten thousand calendar's appearances have brought conveniently many for people's life.This design is one based on AT89S52 single-chip microcomputer calendar display system, it can demonstrate years, the month, the date of the Gregorian calendar, and hour, minute, second, temperature, week and so on. Moreover it has also provided the lunar calendar information, adjustable time pattern, temperature sample, alarm system, individual quarter-bell and so on. The system clock calendar DS1302 with high performance, low power consumption and simple interface features Circuit enable the system to streamline programming convenience, but also highly functional. The problems of inaccurate, unreliable, and the uniform inferior can be come up when you use the analogous circuit. However, it can be improved when you use the clock system based on AT89S52 single-chip microcomputer. The system time accurate, low cost and can be widely applied to the life, study and work in any field, and has played an important role.Key words:The Electronic Calendar Clock;Single-chip Microcomputer;The Time Calendar Clock;Temperature Chip;The Lunar Calendar Convert To The Gregorian Calendar目录摘要 (I)Abstract (II)第一章引言 (1)1.1 概述 (1)1.2 单片机的简介 (1)第二章方案设计与论证 (4)2.1 单片机芯片设计与论证 (4)2.2 电源模块设计与论证 (5)2.3 按键控制模块设计与论证 (5)2.4 时钟模块设计与论证 (5)2.5 温度采集模块设计与论证 (5)2.6 显示模块模块设计与论证 (6)第三章系统的硬件设计 (7)3.1 主控芯片AT89S52与最小外围系统 (7)3.1.1 AT89S52的概述 (7)3.1.2 AT89S52最小系统的设计 (10)3.2 时钟芯片DS1302接口设计与性能分析 (11)3.2.1 DS1302性能简介 (11)3.2.2 DS1302接口电路设计 (12)3.3 温度芯片DS18B20接口设计与性能分析 (14)3.3.1 DS18B20性能简介 (14)3.3.2 DS18B20接口电路设计 (15)3.3.3 DS18B20的工作时序 (16)3.4 闹钟模块接口设计与性能分析 (17)3.4.1 AT24C02器件使用 (17)3.4.2 接口电路设计 (19)3.5 LCD显示模块 (19)3.5.1 LCM1602的特性及使用说明 (19)3.5.2 LCM1602与MCU的接口电路 (21)3.6 按键模块设计 (21)第四章软件设计 (23)4.1 软件总体部分的设计 (23)4.2 LCD驱动及液晶显示 (24)4.3 按键识别及处理 (25)4.4 温度数据采集 (26)4.5 时间数据采集 (27)4.6 闹钟程序 (28)4.7 公历转农历的实现 (28)第五章系统的调试 (30)总结 (31)参考文献 (32)附录A 设计原理图 (33)附录B 源程序 (34)附录C 公历对应的农历数据表 (55)致谢 (58)第一章引言1.1 概述随着电子技术的发展,人类不断研究,不断创新纪录。
在网页上显示带农历日历
在⽹页上显⽰带农历⽇历在⽹页上显⽰带农历⽇历(作者:姚永奎 2002年08⽉29⽇ 09:40)各位,看到下⾯这个带⽇历桌⾯(图1)了么?呵呵,还带个农历,⽅便着呢!没见过吧你?我是可是⽤⽹页做的啦!呵呵,也想做⼀个?好好好,随我来啦:图1:带农历的⽇历桌⾯(点击看⼤图)第⼀步:⽤你所熟悉的⽹页制作软件(我⽤的是FrontPage)做⼀个空⽩页⾯,并命第⼀步:名为“我的⽇历.htm”存放到你的爱机上;第⼆步:第⼆步:把下⾯⼀段代码插⼊到“我的⽇历.htm”源⽂件的“<body>”与“</body>”之间(这⾥是成品):<script language="JavaScript"><!--var bsYear;var bsDate;var bsWeek;var arrLen=8; //数组长度var sValue=0; //当年的秒数var dayiy=0; //当年第⼏天var miy=0; //⽉份的下标var iyear=0; //年份标记var dayim=0; //当⽉第⼏天var spd=86400; //每天的秒数var year1999="30;29;29;30;29;29;30;29;30;30;30;29"; //354var year2000="30;30;29;29;30;29;29;30;29;30;30;29"; //354var year2001="30;30;29;30;29;30;29;29;30;29;30;29;30"; //384var year2002="30;30;29;30;29;30;29;29;30;29;30;29"; //354var year2003="30;30;29;30;30;29;30;29;29;30;29;30"; //355var year2004="29;30;29;30;30;29;30;29;30;29;30;29;30"; //384var year2005="29;30;29;30;29;30;30;29;30;29;30;29"; //354var year2006="30;29;30;29;30;30;29;29;30;30;29;29;30";var month1999="正⽉;⼆⽉;三⽉;四⽉;五⽉;六⽉;七⽉;⼋⽉;九⽉;⼗⽉;⼗⼀⽉;⼗⼆⽉"var month2001="正⽉;⼆⽉;三⽉;四⽉;闰四⽉;五⽉;六⽉;七⽉;⼋⽉;九⽉;⼗⽉;⼗⼀⽉;⼗⼆⽉"var month2004="正⽉;⼆⽉;闰⼆⽉;三⽉;四⽉;五⽉;六⽉;七⽉;⼋⽉;九⽉;⼗⽉;⼗⼀⽉;⼗⼆⽉"var month2006="正⽉;⼆⽉;三⽉;四⽉;五⽉;六⽉;七⽉;闰七⽉;⼋⽉;九⽉;⼗⽉;⼗⼀⽉;⼗⼆⽉"var Dn="初⼀;初⼆;初三;初四;初五;初六;初七;初⼋;初九;初⼗;⼗⼀;⼗⼆;⼗三;⼗四;⼗五;⼗六;⼗七;⼗⼋;⼗九;⼆⼗;廿⼀;廿⼆;廿三;廿四;廿五;廿六;廿七;廿⼋;廿九;三⼗";var Ys=new Array(arrLen);Ys[0]=919094400;Ys[1]=949680000;Ys[2]=980265600;Ys[3]=1013443200;Ys[4]=1044028800;Ys[5]=1074700800;Ys[6]=1107878400;Ys[7]=1138464000;var Yn=new Array(arrLen); //农历年的名称Yn[0]="⼰卯年";Yn[1]="庚⾠年";Yn[2]="⾟巳年";Yn[3]="壬午年";Yn[4]="癸未年";Yn[5]="甲申年";Yn[6]="⼄⾣年";Yn[7]="丙戌年";var D=new Date();var yy=D.getYear();var mm=D.getMonth()+1;var dd=D.getDate();var ww=D.getDay();if (ww==0) ww="<font color=RED>星期⽇";if (ww==1) ww="星期⼀";if (ww==2) ww="星期⼆";if (ww==3) ww="星期三";if (ww==4) ww="星期四";if (ww==5) ww="星期五";if (ww==6) ww="<font color=RED>星期六";ww=ww;var ss=parseInt(D.getTime() / 1000);if (yy<100) yy="19"+yy;for (i=0;i<arrLen;i++)if (ss>=Ys[i]){iyear=i;sValue=ss-Ys[i]; //当年的秒数}dayiy=parseInt(sValue/spd)+1; //当年的天数var dpm=year1999;if (iyear==1) dpm=year2000;if (iyear==2) dpm=year2001;if (iyear==3) dpm=year2002;if (iyear==4) dpm=year2003;if (iyear==5) dpm=year2004;if (iyear==6) dpm=year2005;if (iyear==7) dpm=year2006;dpm=dpm.split(";");var Mn=month1999;if (iyear==2) Mn=month2001;if (iyear==5) Mn=month2004;if (iyear==7) Mn=month2006;Mn=Mn.split(";");var Dn="初⼀;初⼆;初三;初四;初五;初六;初七;初⼋;初九;初⼗;⼗⼀;⼗⼆;⼗三;⼗四;⼗五;⼗六;⼗七;⼗⼋;⼗九;⼆⼗;廿⼀;廿⼆;廿三;廿四;廿五;廿六;廿七;廿⼋;廿九;三⼗";Dn=Dn.split(";");dayim=dayiy;var total=new Array(13);total[0]=parseInt(dpm[0]);for (i=1;i<dpm.length-1;i++) total[i]=parseInt(dpm[i])+total[i-1];for (i=dpm.length-1;i>0;i--)if (dayim>total[i-1]){dayim=dayim-total[i-1];miy=i;}bsWeek=ww;bsDate=yy+"年"+mm+"⽉";bsDate2=dd;bsYear="农历"+Yn[iyear];bsYear2=Mn[miy]+Dn[dayim-1];if (ss>=Ys[7]||ss<Ys[0]) bsYear=Yn[7];function CAL(){document.write("<table border='1' cellspacing='3' width='105' bordercolor='#000000' bgcolor='#FFFFFF' height='110'cellpadding='2'");document.write("<tr><td align='center'><b><fontcolor=#008040>"+bsDate+"</font><br><font face='Arial'size='6' color=#FF8040>"+bsDate2+"</font><br><fontcolor=#008040><span style='FONT-SIZE: 10.5pt'>");document.write(bsWeek+"</span><br>"+"<br></b><fontcolor=#9B4E00>");document.write(bsYear+"<br>"+bsYear2+"</td></tr></table>");}//--></script><script language="javascript">CAL();</script>第三步:到你桌⾯属性设置窗⼝中,把“我的⽇历.htm”这个这个⽹页⽂件设为桌⾯第三步:项。
win10系统日历怎么显示中国农历
win10系统日历怎么显示中国农历
新版win10,自带日历中可显示中国农历,及世界各大年历,那么win10系统日历怎么显示中国农历呢? 小编分享了win10系统日历显示中国农历的方法,希望对大家有所帮助。
win10系统日历显示中国农历方法
1、首先打开日历应用,点击左下角的设置按钮,在弹出的设置中选择“日历设置”。
2、在日历设置界面中可以找到备用日历,勾选“启用”,选择中文(简体)以及农历即可。
3、新版还可以设置显示各国的假日日历,方法为点击上图中的“更多日历”,然后选择对应国家即可。
看过“win10系统日历怎么显示中国农历”的人还看了:
1.Win10如何设置可以访问日历的应用
2.WIN10日历怎么使用
3.Win10邮件和日历不能同步内容怎么办
4.win10系统时间样式怎么设置
5.Win8系统怎么使用日历应用
6.win10系统怎么显示照片缩略图。
日历查询系统
您查询的日期和时间: 2016年7月12日 Tuesday 丙申【猴】年六月初九
乙未【羊】月乙未【羊】日辛巳【蛇】时
【猴】 7 星期二 星期三 星期四
上午好! 今天是:
廿二
26
廿三
27
廿四
28
火把节
29
廿六
31
廿八
2016
年 518
7 558
月
12 101
日 30
今天就是您要查询的日期
上午好! 今天是:
016年7月12日 Tuesday
农历丙申【猴】年六月初九
乙未【羊】月乙未【羊】日丁巳【蛇】时 7日9时59分
星期六
时 81
2 9
初七
国际合作社日
16
十四
23
二十
30
廿七
9
2016年7月12日 Tuesday
农历丙申【猴】年六月初 立秋 星期五
乙未【羊】月乙未【羊】日
大暑 22日17时37分 星期日 星期一
1
廿八
3
三十
4
六月
5
初三
6
初四
7
小暑
8
初六
10
初八
11
世界海事日、船舶日
12
初十
13
十一
14
十二
15
十三
17
十四
18
十五
19
十六
20
十七
21
十八
22
大暑
24
廿一
25
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
只显示某月日历(monthly)函数
• 主要功能是:当输入 年月时,输出相应月 的日历,并在最上方 输出对应的月。 • 实现主要是通过调用 闰年判断、星期计算 等函数实现的。 • 并提示数
• 主要功能是:通过提 示输入某年月日可输 出该年月日是星几。 • 实现时通过自己编写 的算法实现的,同时 用到了公式等。计算 完毕后并提示是否继 续下一次。 • 如果继续输入(y/Y)继 续,(n/N)退出此项 查询。
C语言课程设计——日历显示系统
菜单(menu)函数
• 主要功能是:通过按 数字键1~6,选择所要 查询的方式开始查询。 • 是调用其他函数的提 示入口。 • 按提示选择好方式按 enter进入查询界面。
全年日历显示(printcalendar)函数
• 主要功能:通过提示 输入年,打印出所输 入年的日历。 • 实现时主要通过调用 其他函数做辅助,比 如,星期、月数、闰 年判断等等。 • 以上函数实现的是前 六个月的日历,按任 意键可打印出后六个 月的日历。
某年月日是一年中的第多少天(switch,case)语句
• 主要功能是:计算某年某 月是一年中的第多少天。 首先通过调用isleapyear 函数,判断该年是否为闰 年。 • 然后在调switch,case语句, 先满足switch的控制条件, 然后找到与之相匹配的 case语句并执行其后的对 应语句。 • 之后,显示提示语句是否 继续。按照自己选择进行 下一次。