中华万年历插件开发说明书
中华万年历app测试用例
模块名
用例名称
优先级 前置条件 操作步骤
zhwnl-001
安装包安装
zhwnl-002 zhwnl-003
安装
zhwnl-004 安装卸载
zhwnl-005
手机应用市场安装
电脑手机助手安装 安装过程中异常情
况 电脑助手卸载
zhwnl-006
卸载
管理软件卸载
zhwnl-007
手动卸载
zhwnl-008
提醒
长按创建 记事
重复
添加图片
添加录音
添加位置
联系人
撤销
保存
分享微信
分享朋友 圈
分享新浪 微博
分享QQ好 友
黄历
zhwnl-084 zhwnl-085 zhwnl-086 zhwnl-087 zhwnl-088 zhwnl-089 zhwnl-090 zhwnl-091 zhwnl-092 zhwnl-093 zhwnl-094 zhwnl-095
10尺寸手机屏幕
微信
主流软件 的兼容
微博
支付宝
搜狗输入法,QQ拼 音
手机
终端类型
平板 手表
电视
12内存泄露测试
DDMS
权限
权限是否会申请
zhwnl-312
权限
是否有不需要的权 限
zhwnl-313 zhwnl-314 zhwnl-315
通知栏常驻
zhwnl-225
桌面小工具
zhwnl-226
个性化
zhwnl-227
3冒烟测试
monkey工 具
zhwnl-228 zhwnl-229 zhwnl-230 zhwnl-231 zhwnl-232 zhwnl-233 zhwnl-234
万年历系统程序设计说明
万年历系统程序设计有以下特点:
①日历初始化和显示。
能根据系统日期进行初始化,并显示当前月份的月历,并突出显示当前日期。
②日期查询,可以输入一个日期,然后查询并正确显示日期所在月份的月历,并突出显示查询日期,如果输入日期不正确给出提示。
满足了以上设计要求之后,此程序设计的重点在于分析年、月以及信息流程的算法,然后根据万年历的特点,以及c语言程序设计流程算法,来完成此程序的设计。
当然,还利用c语言编写各个子程序,将软件将各个模块的功能分为列菜单、表明结构体、录入、排序、查询、插入及读取等来组成整个程序,实现对万年历的系统管理。
Step 1.
Step 2.
Step 3.。
中华万年历插件开发说明书
中华万年历插件开发说明书江苏华易科技有限公司文件变更记录目录1.概述 (3)2.请求接口 (3)2.1请求农历: (3)2.2请求提醒: (4)2.3请求天气 (4)2.4请求自定义程序 (5)3.插件开发 (5)3.1定义广播 (5)3.2注册广播 (6)3.3创建布局文件 (7)3.4绑定布局 (7)3.5时间更新 (7)1.概述本文档适用于中华万年历桌面插件的开发,该文档为客户端功能开发提供依据和参考。
客户端端需按照本文档注明的功能点进行开发,并确保功能的可使用性。
本文档以最新版为主,新版发布后旧版自动作废。
2.请求接口请求前提:已安装中华万年历。
2.1请求农历:Cursorcur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/nongli/"+todayString), null, null, null, null);i f(cur!=null){Bundle bundle=cur.getExtras();if(bundle!=null){widgetBean.year_n=bundle.getString("nong_year");widgetBean.month_n=bundle.getString("nong_month");widgetBean.date_n=bundle.getString("nong_date");widgetBean.year_gz=bundle.getString("nong_year_gz")+"年";widgetBean.month_gz=bundle.getString("nong_month_gz")+"月";widgetBean.date_gz=bundle.getString("nong_date_gz")+"日";}cur.close();}参数描述:/nongli/:代表请求的是农历信息。
万年历程序设计说明书
万年历程序设计说明书一、引言万年历是一种常见的日历工具,用于显示日期和计算日期间的差异。
本说明书旨在介绍万年历程序的设计原理和功能,帮助用户更好地理解和使用该程序。
二、程序设计原理1. 数据结构万年历程序主要基于日期的计算和显示,因此需要设计合适的数据结构来存储日期信息。
常用的数据结构包括日期对象、月份对象和年份对象。
2. 界面设计万年历程序需要提供用户友好的界面,以便用户能够方便地输入和查看日期信息。
界面设计应简洁明了,同时考虑不同屏幕尺寸和分辨率的适配。
3. 算法设计万年历程序的核心功能是日期的计算和显示。
算法设计应能够准确计算日期间的差异,包括年份、月份和天数的计算。
同时,还需要考虑闰年和月份天数不同的情况。
三、功能介绍1. 日期查询用户可以通过输入日期来查询该日期的详细信息,包括星期几、所在月份和年份等。
程序应能够准确显示查询结果并提供相关操作选项。
2. 日期计算用户可以输入两个日期,程序将计算并显示这两个日期之间的差异,包括相差的年份、月份和天数。
程序应能够处理闰年和月份天数不同的情况。
3. 节假日提醒万年历程序可以提供节假日的提醒功能,用户可以设置节假日的提醒日期和提醒方式。
程序应能够准确提醒用户,并提供相应的操作选项。
4. 日期转换用户可以输入不同的日期格式,程序将自动转换为标准的日期格式进行计算和显示。
程序应支持常见的日期格式,并提供错误处理机制。
四、程序设计实现1. 开发环境万年历程序可以使用各种编程语言和开发工具进行实现。
常见的开发环境包括Java、Python、C++等。
选择合适的开发环境可以提高开发效率和程序性能。
2. 数据库设计万年历程序可以使用数据库存储节假日和相关数据,以便程序查询和显示。
数据库设计应考虑数据的结构和索引,提高数据的查询效率和程序的响应速度。
3. 界面设计万年历程序的界面设计应简洁明了,用户可以方便地输入和查看日期信息。
界面设计可以使用图形界面或命令行界面,根据实际需求选择合适的设计方式。
万年历程序设计说明书
万年历程序设计说明书一、引言万年历是一款方便用户查询日期、农历、节假日等信息的应用程序。
本文档将详细介绍万年历程序的设计和功能实现,以帮助开发人员理解和使用该程序。
二、需求分析1. 用户可以通过程序查询指定日期的公历和农历信息。
2. 用户可以查看指定日期是否为节假日,并显示节假日名称。
3. 用户可以选择查询某个年份的所有节假日。
4. 用户可以设置提醒功能,当指定日期到来时,程序会发送通知提醒用户。
5. 界面友好,操作简单,用户体验良好。
三、系统设计1. 技术选型本程序将使用Python语言进行开发,使用以下库和框架:- tkinter:用于创建程序的图形用户界面。
- datetime:用于处理日期和时间相关的操作。
- requests:用于发送HTTP请求,获取节假日数据。
- plyer:用于发送系统通知。
2. 模块划分本程序将分为以下几个模块:- 主界面模块:负责显示程序的主界面,包括日期选择框、查询按钮等。
- 日期查询模块:负责处理用户输入的日期,查询公历和农历信息,并显示在界面上。
- 节假日查询模块:负责查询指定日期是否为节假日,并显示节假日名称。
- 节假日提醒模块:负责设置提醒功能,当指定日期到来时发送系统通知提醒用户。
3. 数据获取与处理- 公历和农历信息:使用datetime库获取指定日期的公历和农历信息。
- 节假日数据:通过发送HTTP请求获取节假日数据,并使用json库进行解析和处理。
四、功能实现1. 主界面设计主界面应包括日期选择框、查询按钮、显示区域等组件,用户可以通过日期选择框选择查询日期,并点击查询按钮进行查询操作。
查询结果将显示在显示区域中。
2. 日期查询功能实现用户选择查询日期后,程序将使用datetime库获取公历和农历信息,并将其显示在界面上。
3. 节假日查询功能实现用户可以选择查询某个年份的所有节假日。
程序将通过发送HTTP请求获取节假日数据,并使用json库进行解析和处理。
(万年历)开发文档
(万年历)开发文档2021第六届“博创杯”全国大学生嵌入式设计大赛作品设计报告基于FPGA的多功能数字万年历的设计Design of FPGA-based Electronic Perpetual Calendar设计报告目录摘要 ........................................................................... ......................................................................... I 第一章绪论 ........................................................................... (1)1.1 电子技术的发展史 (1)1.2 FPGA-可编程逻辑器件 ................................................... 1 1.3 设计流程 ............................................................... 2 第二章电子万年历的系统方案 ........................................................................... (3)2.1 电子万年历的系统概述 ................................................... 3 2.2 电子万年历的工作原理 .................................................. 3 2.3电子万年历的时钟问题 (4)2.3.1全局时钟............................................................................ ................................................... 4 2.3.2门级时钟............................................................................ ................................................... 5 2.3.3多级逻辑时钟 ........................................................................... ............................................ 5 2.3.4 波动式时钟 ........................................................................... ............................................... 5 2.4电子万年历的控制系统 ................................................... 6 2.4.1主控制模块maincontrol .................................................................. ................................. 6 2.4.2 时间自动显示及其设置模块time_auto_and_set (8)2.4.3 时间显示动态位选模块time_disp_select ..............................................................15 2.4.4 显示模块disp_data_mux ................................................................ ................................ 16 2.4.5 秒表stopwatch..................................................................... ......................................... 17 2.4.6 日期自动显示和日期设置date_main .................................................................... ........ 18 2.4.6.2 日期的设置setdate ...................................................................... ............................. 19 2.4.7闹钟模块alarmclock ................................................................... .................................... 20 2.4.8阳历转阴历模块swicthto ..................................................................... .......................... 22 2.4.9 分频模块fdiv ......................................................................... .. (23)第三章功能和指标 ........................................................................... (24)3.1 系统的主要功能 ........................................................24 3.2 系统的主要指标 ........................................................24 第四章实现原理 ........................................................................... . (25)4.1 系统的整体设计流程 ....................................................25 4.2下载硬件配置文件和运行软件程序 ........................................26 第五章系统的硬件框图 ........................................................................... ........................................... 27 第六章系统的各模块连接图 ........................................................................... ................................... 27 第七章:系统的操作简介 ........................................................................... ......................................... 29 第八章测试设备 ........................................................................... ....................................................... 30 第九章系统说明 ........................................................................... ....................................................... 30 结论 ........................................................................... ............................................................................. 31 参考文献 ........................................................................... (31)多功能数字万年历的设计摘要电子技术的发展更是日新月异。
课程设计说明万年历程序设计
《高级语言程序设计》课程设计说明书设计题目:万年历程序设计班级:学号:姓名:完成日期:一:课程设计目的《高级语言程序设计》课程设计是电子信息、光信息专业和物理学专业集中实践性环节之一,是学习完《高级语言程序设计》课程后进行的一次全面的综合练习,其目的在于加深对程序设计大体知识的明白得,把握利用C语言进行模块化软件设计的大体方式,提高通过编写程序解决实际问题的能力,为尔后从事设计工作和后续各类编程课程的学习打好基础。
二:需求分析题目:要求:输入年份和月份,自动输出该月的日历,清楚的显示每一天是礼拜几,输入年份,月份和具体日期能确信某天是礼拜几。
万年历是采纳数字电路实现对.时,分,秒.数字显示的计时装置,普遍用于个人家庭,车站, 码头办公室等公开场合,成为人们常生活中不可少的必需品,由于数字集成电路的进展和石英晶体振荡器的普遍应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如按时自动报警、按时自动打铃、时刻程序自动操纵、按时广播、自动起闭路灯、按时开关烘箱、通断动力设备、乃至各类按时电气的自动启用等,可是所有这些,都是以钟表数字化为基础的。
因此,研究万年历及扩大其应用,有着超级现实的意义。
它能够对年、月、日、周日、时、分、秒进行计时,关于数字电子万年历采纳直观的数字显示,能够同时显示年、月、日、周日、时、分、秒等信息,还具有时刻校准等功能。
综上所述此万年历具有读取方便、显示直观、功能多样、电路简练、本钱低廉等诸多优势,符合电子仪器仪表的进展趋势,具有广漠的市场前景。
三:概要设计1-判定是不是为闰年计算所输入的年份是不是可被4整除,假设不能被整除,为平年。
假设可被4整除,计算此年份可否被100整除,不能被100整除那么为闰年。
既能被4整除,也能被100整除的年份,假设也能被400整除,那么为闰年,不然为平年。
闰年366天,平年365天2-要紧设计思路四:详细设计源程序:#include <stdio.h> #include <stdlib.h>void DayOfWeek(){int rtnDay;int y,m,d;char ch;while (1){printf("请输入年月日(xxxx,xx,xx): ");scanf("%d,%d,%d", &y, &m, &d);fflush(stdin);rtnDay =(3*y-(7*(y+(m+9)/12))/4+(23*m)/9+d+17-((y+(m<3?-1:0))/100+1)*3/4) % 7; printf("%04d年%02d月%02d日是礼拜%d\n", y, m, d, rtnDay?rtnDay:7); printf("继续查询(y/n)");ch = getchar();if(ch != 'y' && ch != 'Y')break;}}void GetMonth(int D, int md, int n){int N ,m,d,y,c,Wd;int i,maxday,i1;if(md>=13||md<=0)printf("HAVE WRONG!");else{for(i1=0;;md++,i1++){if(md==0){md=12;D-=1;}elseif(md==13){md=1;D+=1;}m=md;printf("\n============%d,%2d============\n",D,md);if(0<m&&m<=12){switch(m){case 1:maxday=31;break;case 2:if(D%4==0&&D%100!=0||D%400==0) maxday=29;elsemaxday=28;break;case 3:maxday=31;break;case 4:maxday=30;break;case 5:maxday=31;break;case 6:maxday=30;break;case 7:maxday=31;break;case 8:maxday=31;break;case 9:maxday=30;break;case 10:maxday=31;break;case 11:maxday=30;break;case 12:maxday=31;break;default:printf("HAVE WRONG");}if(0<m&&m<=2){N=D-1;m=m+10;}else{N=D;m=m-2;}c=N/100;y=N%100;Wd=((1+(13*m-1)/5+y+y/4+c/4-2*c)%7+7)%7; printf(" SUN MOU TUE WED TUR FRI SAT\n"); for(i=0;i<Wd;i++)printf("%4c",' ');for(d=1;d<=maxday;d++){printf("%4d",d);Wd=(Wd+1)%7;if(Wd==0)printf("\n");}}elseprintf("HAVE WRONG!");if(i1==n)break;}}}void MonthOfYear(){char ch;int y, m;while (1){printf("请输入年月(xxxx,xx): "); scanf("%d,%d", &y, &m);fflush(stdin);GetMonth(y, m, 0);printf("\n继续查询(y/n)");ch = getchar();if(ch != 'y' && ch != 'Y')break;}}void GetYear(){char ch;int y;while (1){printf("请输入年: ");scanf("%d", &y);fflush(stdin);GetMonth(y, 1, 11);printf("\n继续查询(y/n)");ch = getchar();if(ch != 'y' && ch != 'Y')break;}}int main(){char ch;while(1){system("cls");printf("1.查询礼拜\n");printf("2.查询月份\n");printf("3.显示一年\n");printf("4.退出程序\n");ch = getchar();fflush(stdin);switch(ch){case '1':DayOfWeek();break;case '2':MonthOfYear();break;case '3':GetYear();break;case '4':printf("是不是退出(y/n)");ch = getchar();fflush(stdin);if(ch == 'y' || ch == 'Y')exit(0);break;}}}五:运行成效及分析1 登录界面输入3,通过输入年份可显示一年每一个月份的日历;输入2,通过输入年份和月份(中间以空格分开)可显示该月的日历;假设输入1,通过输入年份月份和日期(中间以逗号分开)可显示该日的礼拜;输入4,那么退出查询系统2查询礼拜输入1后回车,然后输入具体的年月日可查出该天为礼拜几3查询月历输入2回车,然后输入年月可显示该月月历4显示一年输入3后回车,输入一个有效年份可显示该年的十二个月的月历。
C++程序设计(万年历——说明书)
C++程序设计说明书题目:万年历班级学号:学生姓名:目录一.应用程序的名称二.应用程序的主题、设计目的三.应用程序简介1.程序的基本结构及内容2。
程序的运行环境四.主要运行界面的介绍五.程序亮点六.课程设计中存在的问题及解决方法一.课程设计名称万年历二.应用程序要求、目的主题:万年历目的:实现对年月的查询三.应用程序简介(1)基本结构:整个程序有cls_screen(清屏)、judgement(判断是否为闰年)、show_week(记录周几)、print_year(查询某年)、print_year_month(查询某年某月)等自定义函数,程序中涉及到switch语句、for语句、if语句等和多次函数调用语句,开头定义了day_of_month[]数组,主要目的是将12个月每个月有多少天依次排出,在后面又用if语句判断二月的天数是28还是29。
在主函数中运用while 语言与switch语句的嵌套,是程序拥有了循环的功能.用fflush(stdin);语句清除输入缓存,使程序在使用过程中不会太过眼花缭乱。
万年历的编程,需要两个方面的讨论和研究,一是要在用户输入年份的时候,判断该年是否为闰年,而对于闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。
所以会改变day_of_month[]数组中的二月份的数值。
二是在用户输入年月份的时候,判断该年该月的第一天是周几,从来好排列。
而对于判断周几,需要运用公式:w=(y+[y/4]+[c/4]—2c+[26(m+1)/10]+d-1)%7并用if语句使用判断。
通过这两个方面的讨论和实现,才能合理的编程出万年历的基本程序代码.(2)源程序代码:#include〈stdio.h>#include 〈string。
h〉#include 〈time.h>#include <math。
h〉#include 〈windows。
万年历Java课程设计
2.2.2程序流程框图
开始
初始化
读、写日期、时间和温度
分离日期\时间\温度显示值
显示子程序
定时闹铃子程序
日期、时间修改子程序
农历自动更新子程序
闰月子程
返回
图1 主程序流程图
图2计算阳历程序流程图
图3时间调整程序流程图
课程设计说明书N O.19
课程设计说明书N O.20 3、设计结果与分析
3.1程序效果图
3.1.1程序打开时的效果,左边是记事本框,右边是万年历框。
图4程序效果图
3.1.2月份下拉列表的视图,选择某月很方便的。
图5程序效果图
3.1.3任选一个日期,在此日期中输入日记的信息。
效果如下图:
图6程序效果图
课程设计说明书N O.21 3.1.4保存日历成功对话框,选择“save”按键后自动弹出此对话框。
图7程序效果图
3.1.5当想删除所写日记时此确认对话框可有效防止误删。
图8程序效果图
3.1.6删除成功后会显示此对话框,提示删除成功。
图9程序效果图
3.2程序分析
该程序能够很好得实现万年历得功能,包括选择年份,月份,天份。
而且从外观上看不但简洁实用而且很美观。
程序打开的时候,能看到。
左边显示得是记事本框,右边显示是万年历框,简洁明了。
具有月份下拉功能,需要月份下拉得时候,可以随意调到自己需要得月份进行查看,十分方便。
可以任选一个日期,并在此日期中输入日记的信
课程设计说明书N O.22。
万年历开发
万年历开发在计算机普及的今天,万年历成为了人们日常生活和工作中经常用到的桌面实用工具,它方便人们查看日期,省去了翻阅日历的麻烦。
万年历还可以根据用户输入的年月日准确快速地查出当天的信息,当输入到月时能够显示出该月的日历。
通过本章的学习,读者能够学到以下内容:如何向主函数传递参数怎样将传入的字符串转换成年月日如何判断闰年如何计算星期几1.1 万年历概述1.1.1 功能概述实用工具万年历类似于家里的日历,方便办公人员翻看日历,查阅信息。
它的主要功能是根据用户输入的参数,显示相应的信息。
例如,输入年月日具体日期,系统会输出该天是星期几;若输入的数据为年月,那么会输出该年该月的日历信息。
1.1.2 万年历效果预览实用工具万年历由多个模块组成,但是这些模块很多都是用于对项目的算法进行编写,没有太多对应这些模块的效果预览图。
下面来看几个万年历中输入不同参数时显示的效果。
当输入参数“1988/10/18”时,命令行中显示的效果如图1.1所示。
的效果如图1.2所示。
图1.1 传入年月日后的效果图当在命令行中输入参数为“2011.05.”时,显示2011年5月的效果如图1.3所示。
1.2 关键技术1.2.1 main()函数的参数在万年历实用工具中,运行程序时首先应该向主函数传递参数。
主函数main()的形式参数如下:main (int argc, char* argv[] )cp /a /root/aargc == 3argv [“cp” ,“/a” , “/root/a” ]argv[2] == “/root/a”argv[2][1] == …r‟lsargc==1argv[“ls”]0*10+2 == 2 ----------22*10 + 0 == 20-------020*10 + 1 == 201---------1201*10+ 2==2012--------2main()函数的两个内部形参argc和argv是用来接收命令行实参的,这是只有主函数main()才能具有的参数。
万年历设计报告书
万年历设计报告书一、设计要求:1.具有年、月、日、星期、时、分、秒等功能;2.时间与阴、阳历能够自动关联;图-1 主程序流程图三、各模块的功能及程序说明1. 具有年、月、日、星期、时、分、秒等功能在设计这一程序的时候,考虑到要在用户界面上对年月日以及时分秒的输入,在使用上更简单易操作。
2. 时间与阴、阳历能够自动关联在设计这一功能的时候,考虑到阴历和阳历要关联,翻阅了大量的资料,找到他们的函数关系,使这一功能在使用上更方便。
四、源程序package prog;import java.util.Scanner;public class MC2 {static final int BASE_YEAR = 2000;static final int BASE_WEEK_DAY = 6;static int getWeekDay(int year, int month, int day) {int base = getWeekDayOfFirstDay(year);int days = getDaysBetweenFirstDay(year, month, day);return (base + days) % 7;}static int getWeekDayOfFirstDay(int year) {if (BASE_YEAR == year) return BASE_WEEK_DAY;int days = getDaysBetweenTwoYear(year, BASE_YEAR);if (year > BASE_YEAR)return (BASE_WEEK_DAY + days) % 7;elsereturn (BASE_WEEK_DAY - days % 7);}static int getDaysBetweenTwoYear(int year1, int year2) {int min = Math.min(year1, year2);int max = Math.max(year1, year2);int sum = 0;for (int i = min; i < max; i++)sum += getYearDays(i);return sum;}static int getYearDays(int year) {return isLeapYear(year)? 366: 365;}static int getDaysBetweenFirstDay(int year, int month, int day) { int sum = 0;for (int i = 1; i < month; i++)sum += getMonthDays(year, i);sum += day - 1;return sum;}static int getMonthDays(int year, int month) {switch (month) {case 1: case 3: case 5: case 7:case 8: case 10: case 12:return 31;case 4: case 6: case 9: case 11:return 30;case 2:return isLeapYear(year)? 29: 28;}return 0;}static boolean isLeapYear(int year) {return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;}static void printYear(int year) {for (int i = 1; i <= 12; i++)printMonth(year, i);}static void printMonth(int year, int month) {System.out.print("\n\n====================== " + month + " ======================\n");System.out.print("Sun\tMon\tTue\tWed\tThu\tFri\tSat\n");int wd = getWeekDay(year, month, 1);for (int i = 0; i < wd; i++)System.out.print("\t");int lastday = getMonthDays(year, month);for (int i = 1; i <= lastday; i++) {System.out.printf("%3d\t", i);if (wd++ % 7 == 6 && i != lastday)System.out.println();}}public static void main(String [] args) {System.out.print("Input a year: ");Scanner scanner = new Scanner(System.in);int year = Integer.parseInt(scanner.nextLine());printYear(year);}}五、操作方法当进入用户界面的时候,可以在年月日栏里分别输入年份月份和日,并能自己显示出相对应的农历以及星期。
中华万年历安卓版插件使用说明
中华万年历安卓版插件介绍今天为大家准备了一篇中华万年历安卓版桌面插件的使用说明,希望能帮助到大家。
NO.1 4x2随身天气:1、直接点击插件底部的图标即可进入相应的提醒、待办等操作。
2、插件主题可更换(进入主页面-更多-个性化-主题背景-插件)3、带有日程提醒,最多显示三条。
4、点击天气图标,进入天气页面,可添加城市。
5、点击时间可以直接进入主页面。
6、如需调整插件大小,只需长按插件直至上下左右出现调整标志,然后根据需要拉动标志即可。
No.2 4x2经典天气:1、点击城市可切换城市。
2、带有日程提醒,最多显示三条3、点击天气图标,进入天气页面,可添加城市。
4、点击时间直接进入主页面5、城市旁附带实时气温。
6、如需调整插件大小,只需长按插件直至上下左右出现调整标志,然后根据需要拉动标志即可。
No.3 4x1随身日历:1、带有日程提醒,最多显示三条2、如需调整插件大小,只需长按插件直至上下左右出现调整标志,然后根据需要拉动标志即可。
No .4 4x3经典月历:1、点任意地方直接进入主页面。
2、如需调整插件大小,只需长按插件直至上下左右出现调整标志,然后根据需要拉动标志即可。
No .5 4x4随身月历:1、插件顶端中间部分可以加减月份。
2、插件右上方“+”可以设置日程提醒。
3、插件下方显示今日日程安排提醒(最多三条)。
4、如需调整插件大小,只需长按插件直至上下左右出现调整标志,然后根据需要拉动标志即可。
No.6 4x4天气趋势:1、介绍最近六天早晚天气变化状况和气温变化趋势。
2、点击插件顶端天气状况即可及时更新天气,获取最新天气信息。
3、气温走势即可了解更具体的天气信息。
点击气温走势后进入天气页面,你可以通过左右滑动观看已有城市天气信息。
你还能通过点击城市名,进入添加页面,按住根据自身需要添加城市。
城市管理页面左上方分别可以更新天气和选择删除当前已有城市。
4、城市设置好后,你可以直接在插件上点击城市名即可切换城市。
万年历程序设计说明书
数据结构课程设计设计说明书万年历的实现学生姓名学号班级成绩指导教师数学与计算机科学学院2012 年 9 月 8 日数据结构课程设计评阅书课程设计任务书2012—2013学年第1学期专业:计算机科学与技术学号:姓名:课程设计名称:数据结构课程设计设计题目:万年历的实现完成期限:自 2012 年 8 月 27 日至 2012 年 9 月 8 日共 2 周设计依据、要求及主要内容(可另加附页):运用C/ C++结构体、函数、数据结构等基知识,按以下要求编程实现万年历的功能:1)阐述设计思想,画出流程图;2)输入任一年,判断该年是否为闰年;输入年月日计算该日为当年的那一天;3).输入任一年,显示该年的日历,日历包括阳历、农历、节气;4). 说明测试方法,写出完整的运行结果,较好的界面设计.设计要求:1)问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?确定问题的输入数据集合。
2)逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3)详细设计:定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作做出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4)程序编码:把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚;5)程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。
能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
万年历功能说明文档
一、功能描述1、上板复位后从元年1月1号开始计数,为方便上板调试,将一天的时间压缩为1秒;2、按键用于设置日历,按下按键0进入设置状态,再次按下按键0退出设置状态;3、按键1来选择想要设置的年月日的各个位;4、按键2在设置状态进行计数设置,每按下一次数码管显示数字加1;5、平年365天(52周+1天),闰年366天(52周+2天)。
平年2月28天,闰年2月29天。
6、闰年:每400年整一闰,或每4年且不为百年的一闰。
即能被400整除,或不能被100整除但能被4整除的年份为闰年。
二、平台效果图3.仿真结果:选取3个日期检查(1)1900年2月28日:该年不是闰年,故2月份只有28天(2)2000年2月29日:该年是闰年,故2月份有29天(3)2016年12月27日:经验证,日期显示正确。
三、实现过程首先根据所需要的功能,列出工程顶层的输入输出信号列表。
我们可以把工程划分成三个模块,分别是万年历计数模块、按键模块和数码管显示模块。
1.万年历计数模块万年历计数模块实现的是万年历计数功能,为方便观看,将一天时间设置为一秒,日计数器dat_cnt、月份计数器mon_cnt_h、mon_cnt_1、mon_2_h、mon_2_1分别为大月小月以及平年闰年的2月计数器、年份计数器yea_one、yea_ten、yea_hun、yea_tho分别为年份的个十百千位,由yea_cnt_tol <= yea_cnt1000 + yea_cnt100 + yea_cnt10 + yea_one得到年份。
本模块还自动计算当年是否是平闰年。
本模块信号列表如下:2.按键模块本次案例万年历使用的是4x4矩阵键盘,本模块就是实现了矩阵键盘的扫描并使用以及按键消抖功能。
通过行扫描法得到按下的键的位置信息。
本模块的信号列表如下:3.数码管模块数码管模块实现了将年月日的信息显示在数码管上。
本模块的信号列表如下:。
C语言编程万年历程序说明书
目录前言 (3)正文..............................................................................4-6 本次课程总结 (7)附录…………………………………………………………………8-16一.设计题目模仿现实生活中的挂历。
当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。
当系统日期变到下一月时,系统自动翻页到下一月。
二.要求简析根据题目要求,实现当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。
并且在系统时间变化时能够自动翻转页数。
三.实现功能与设计目的题目中要求尽量模仿生活中的挂历,在起始页显示当前的时间以及当前月的月历,目的是使使用者能够直接获取时间,月内周次显示等生活便捷信息。
在功能上有一定创新,表现在周次查询,闰年查询和全年年历查询等便捷功能,操作要求也很快捷,在起始页按下对应数字即可,实现了程序使用上的简便性和快捷性。
另外,功能界面上具有持续性,即可让使用者选择性的持续使用谋一个固定的功能,方便快速使用。
同时,实现了快速回复主菜单的功能,在每个功能菜单上,都可以通过一键快速启用主菜单,从而在功能转换方面得到了很好的提升,方便使用。
通过本程序,实现查询方便,功能持续,转换快捷等有利于方便人们生活的功能,达到了时间知识,灵活运用的目的。
一.需求分析(1)输入的形式和输入值的范围;程序输入要求包含数字输入和字母输入两个部分,回车键确定,数字输入部分主要为年份,月份,日期查询命令时使用,要求了固定的输入格式年份规定位数为四位正数,月份和日期固定为两位正数。
字母输入部分主要为功能转换和输入确定使用。
若输入出错将提示使用者“输入有错,请从新确定输入”。
(2)输出的形式;输出形式以汉字和数字结合的方式输出,输出环境汉语显示,简单明了,数字排列简明,读数方便。
(3)程序所能达到的功能;程序所能达到的功能包括五个方面:1、当前时间,精确到分钟;2、当前月的月历;3、周次查询功能;4、闰年查询功能;5、任意年全年年历查询功能。
万年历课程设计说明书
机械工程系课程设计说明书课程名称:微机接口技术题目名称:带闹钟功能及测温的时钟控制器设计年级专业及班级:2008级机械设计制造及其自动化 2 班姓名:郑泽龙学号:0808012217指导教师:刘建春评定成绩:教师评语:指导老师签名:2011 年 7 月 1 日多功能数字时钟系统设计目录1..前言: (3)2.整体方案确定: (3)3.硬件系统设计: (4)3.1. 按键扫描模块设计: (5)3.2. LCD显示模块 (6)3.3. 时钟DS1302模块 (7)3.4. 存储器24C02模块 (8)3.5. 蜂鸣器模块 (8)3.6. 测温模块 (9)4.软件系统设计: (9)4.1.按键控制函数key_control(void)流程图: (10)4.2. 按键扫描函数char KeyScan(void)流程图: (10)4.3.闹钟函数ALARM(void) (11)4.4. 24c02数据存数函数头文件声明程序如下: (12)5.试验仿真: (15)5.1硬件调试 (15)5.1.1排除元件失效 (15)5.1.2.排除电源故障 (15)5.1.3.联机仿真调式 (16)5.2软件仿真 (16)5.2.1系统误差分析 (16)6.结论 (16)7.成果展示 (17)8.参考资料 (18)1..前言:带闹钟功能及测温的时钟控制器是一种可实现年、月、日时、分、秒计时,温度扫描,数据存储,按键调节时间及闹钟功能的装置,并通过单片机处理后送给显示芯片(9325tp)显示的装置,与机械式时钟相比具有更高的准确性和直观性,且具有更长的使用寿命。
本系统可以分为六大模块:按键扫描模块、LCD显示模块、时钟DS1302模块、存储器24C02模块、蜂鸣器模块、测温模块。
2.整体方案确定:程序开始时先对系统初始化,初始化屏幕显示并设置好各种中断。
首先从24c02芯片中读取上次关机前闹钟的存储数据,扫描按键程序,如有按键按下则进入时间修改函数并将修改后的时间信息写入DS1302的时间芯片中并送显示,同时向24c02中写入更改后的闹钟数据,若无按键按下则进入更新时间函数,从时钟芯片中读取时间信息并送显示,并判断从时间芯片上读取的小时,分的数据和24c02中存储的数据是否一致,若一致则进入闹铃程序,若不一致则将时钟芯片的信息送显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中华万年历插件开发说明书江苏华易科技有限公司文件变更记录目录1.概述 (3)2.请求接口 (3)2.1请求农历: (3)2.2请求提醒: (4)2.3请求天气 (4)2.4请求自定义程序 (5)3.插件开发 (5)3.1定义广播 (5)3.2注册广播 (6)3.3创建布局文件 (7)3.4绑定布局 (7)3.5时间更新 (7)1.概述本文档适用于中华万年历桌面插件的开发,该文档为客户端功能开发提供依据和参考。
客户端端需按照本文档注明的功能点进行开发,并确保功能的可使用性。
本文档以最新版为主,新版发布后旧版自动作废。
2.请求接口请求前提:已安装中华万年历。
2.1请求农历:Cursorcur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/nongli/"+todayString), null, null, null, null);i f(cur!=null){Bundle bundle=cur.getExtras();if(bundle!=null){widgetBean.year_n=bundle.getString("nong_year");widgetBean.month_n=bundle.getString("nong_month");widgetBean.date_n=bundle.getString("nong_date");widgetBean.year_gz=bundle.getString("nong_year_gz")+"年";widgetBean.month_gz=bundle.getString("nong_month_gz")+"月";widgetBean.date_gz=bundle.getString("nong_date_gz")+"日";}cur.close();}参数描述:/nongli/:代表请求的是农历信息。
todayString:必须为8位代表当前日期的数字,如:20100201。
参数对应数据:nong_year:农历年nong_month:农历月nong_date:农历日nong_year_gz:农历年干支nong_month_gz:农历月干支nong_date_gz:农历日干支2.2请求提醒:Cursorcur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/tixing/"+todayString), null, null, null, null);i f(cur!=null){Bundle bundle=cur.getExtras();if(bundle!=null){widgetBean.tixing=bundle.getString("tixing");}cur.close();}参数描述:/tixing/:代表请求的是提醒信息。
todayString:必须为8位代表当前日期的数字,如:20100201。
参数对应数据:Tixing:包括日程、节日等信息。
2.3请求天气Cursorcur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/weather/"+todayString+"/"+actionType), null, null, null, null);if(cur!=null){B undle bundle=cur.getExtras();i f(bundle!=null){String resultCode=bundle.getString("resultCode");if(resultCode.equals("1000")){widgetBean.city=bundle.getString("city");widgetBean.nowTemp=bundle.getString("nowTemp");}else if(resultCode.equals("1001")){//暂无数据}else if(resultCode.equals("1003")){//当前只有一个城市}else{//更新失败}}c ur.close();参数描述:/weather/:代表请求的是天气信息。
todayString:必须为8位代表当前日期的数字,如:20100201。
actionType:1代表获取当前城市天气,2代表刷新当前城市天气,3代表切换到下一个城市。
参数对应数据:resultCode:返回参数,1000表示成功,1001表示暂无数据,1002表示当前只有一个城市,其他值表示更新失败。
city:城市nowTemp:当前温度weather:天气信息2.4请求自定义程序Cursorcur=ctx.getContentResolver().query(Uri.parse("content://cn.etouch.eca lendar.provider/widgetSettings"), null, null, null, null);if(cur!=null){Bundle bundle=cur.getExtras();if(bundle!=null){startApplicationByPackageName(ctx,bundle.getString("packageName"), null);MyPreferences.getInstance(ctx).setIsWidgetUse24Hours(bundle.getBoolea n("IsWidgetUse24Hours"));}cur.close();}else{startApplicationByPackageName(ctx,"default", null);}参数描述:/widgetSettings:代表请求的是用户自定义信息。
参数对应数据:packageName:插件自定义区域点击事件包名。
IsWidgetUse24Hours:是否以24小时制显示时间。
3.插件开发注:为了避免在Launcher中出现插件对应的程序,需把AndroidManifest.xml中Activity对应的UNCHER属性去掉。
3.1定义广播系统自带广播:注:系统自带的广播不能修改,修改后widget将无法接收。
更新广播:android.appwidget.action.APPWIDGET_UPDATE关闭广播:android.appwidget.action.APPWIDGET_DISABLED中华万年历广播:注:中华万年历自带的广播不能修改,修改后widget将无法接收。
日期、农历、提醒更新广播:CN.ETOUCH.ECALENDAR.FESTIVAL_TASK_HAS_CHANGED天气更新广播:CN.ETOUCH.ECALENDAR.WEATHER_HAS_UPDATE开发者自定义广播:注:用户自定义的广播必须修改,否则插件更新会出现问题。
开发者通过自定义广播来实现对插件的更新,自定义广播格式参考如下:CN_ETOUCH_ECALENDAR_LJG_WEATHER_WIDGET_CHECK包名作者用途3.2注册广播在AndroidManifest.xml中注册自己widget中使用到的广播。
如下:<receiver android:name="EcalendarWeatherWidget"android:label="万年历天气"><meta-data android:resource="@xml/ecalendar_weather_widget"android:name="android.appwidget.provider"/><intent-filter><actionandroid:name="android.appwidget.action.APPWIDGET_UPDATE"/ ><actionandroid:name="android.appwidget.action.APPWIDGET_DISABLED"/><actionandroid:name="CN.ETOUCH.ECALENDAR.WEATHER_HAS_UPDATE"/><actionandroid:name="CN.ETOUCH.ECALENDAR.FESTIVAL_TASK_HAS_CHANGED"/><actionandroid:name="CN_ETOUCH_ECALENDAR_LJG_WEATHER_WIDGET_CHECK"/><actionandroid:name="CN_ETOUCH_ECALENDAR_LJG_WEATHER_WIDGET_STARTWEATHER"/><actionandroid:name="CN_ETOUCH_ECALENDAR_LJG_WEATHER_WIDGET_UPDATEWEATHER"/></intent-filter></receiver>3.3创建布局文件创建布局,如下图:3.4绑定布局绑定控件,如下:RemoteViews widgetDayViews = newRemoteViews(context.getPackageName(),yout.weather_widget);widgetDayViews.setTextViewText(R.id.TextView05,widgetBean.tixing);widgetDayViews.setImageViewResource(R.id.ImageView_weather,widget Bean.weatherIconId);绑定事件,如下:Intent startPersionalPackage = newIntent("CN_ETOUCH_ECALENDAR_LJG_WEATHER_WIDGET_STARTPERSIONALPACK AGE");PendingIntent pending0 = PendingIntent.getBroadcast(context,0,startPersionalPackage, 0);widgetDayViews.setOnClickPendingIntent(R.id.linearLayout6, pending0);3.5时间更新在某些情况下,时间的更新可能会出现问题,建议使用如下方法进行更新:启动时间更新:AlarmManager am = (AlarmManager)ALARM_SERVICEIntent intent = newIntent("CN_ETOUCH_ECALENDAR_LJG_WEATHER_WIDGET_CHECK");PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx,0,intent, 0);long interval = 1000 * 10;long firstWake=SystemClock.elapsedRealtime()+(10000-System.currentTimeMillis() % 10000);am.setRepeating(AlarmManager.ELAPSED_REALTIME,firstWake, interval, pendingIntent);注销时间更新:AlarmManager am = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);Intent intent = newIntent("CN_ETOUCH_ECALENDAR_LJG_WEATHER_WIDGET_CHECK");PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx,0,intent, 0);am.cancel(pendingIntent);。