计科101冯康
桌面精灵的主窗体运行结果如图1.1所示。桌面精灵模块是以阴历和阳历相结合的方式显示的日历,其中还包含二十四节气以及一些中西方节日,这些特殊的日期都用不同的颜色进行标注。
图1.1 桌面精灵主窗体。
窗口设置。右键单击主界面,在弹出的菜单中选择“窗口设置”命令,打开“窗口设置”模块,如图1.2所示。
在该模块中,用户可以设置窗口的显示风格,包括普通窗口、总在最前和嵌入桌面3种,还可以进行系统设置,包括开机自动运行、鼠标穿透和透明度设置。通过设置这些风格可以更灵活的使用桌面精灵模块。
图1.2 窗口设置。
新建备忘录。
右键单击主界面,在弹出的菜单中选择“新建备忘录”命令,打开“新建备忘录”窗口,如图1.3所示。在该模块中,可以添加备忘录信息,用来提醒用户,一以免忘记重要的工作。
图1.3 新建备忘录模块。
备忘录列表。
右键单击主界面,在弹出的菜单中选择“备忘录列表”命令,打开“备忘录列表”窗口,如图1.4所示。在该模块中,用户可以查看所有的备忘提醒,并可以对这些提醒进行管理。
图1.4 备忘录列表模块。
提示显示。图1.5 备忘录的提示界面。
托盘显示。图1.6 静止状态图1.7 鼠标滑过。
图1.8 右键单击。
图1.9 在主窗口上单击右键菜单显示。
关键**。1、 阳历转换成阴历的方法。
(1)定义一个leapyear函数,用来判断当前年份是否是闰年。
2bool ceidolondlg::leapyear(int year)
return ((year%4==0 &&year%100!=0) |year%400==0);
(2)添加自定义函数firstdayofmonth,用来计算月份的第一天是星期几。
int ceidolondlg::firstdayofmonth(int year,int month)
int n=0,d=0;//d来保存这一天之前在全年中的天数。
for(int i=1;id +=getmonthdays(m_year,i);
计算公式w=[y-1+(y-1)/4-(y-1)/100+(y-1)/400+d]%7
其中w为星期几,y为年份,d为这一天在全年当中所累计的天数。
n = year-1+(year-1)/4-(year-1)/100+(year-1)/400+d+1;//勿忘加1
return n %=7
3)添加getmonthdays函数用来计算各个月份的天数。
int ceidolondlg::getmonthdays(int year,int month)
switch(month)
return 0;
4)添加daysfrom1900函数,用来计算y年m月d日到2024年相差的天数,就是将2024年作为一个基数,根据它来计算当前日期是星期几即农历日期。
long ceidolondlg::daysfrom1900(customdate date)
long days;
days = 365*
for(int i=0;i<
days +=
return days;
5)添加yeardays函数用来计算农历的总天数。
int ceidolondlg::yeardays(int year)
uint i, sum = 348;
for(i=0x8000; i>0x8; i>>=1)
return(sum+leapdays(year));
6)添加 leapmonth函数该函数是用来计算农历y年闰月的天数。
int ceidolondlg::leapmonth(uint year)
return lunarinfo[year-1900] &0xf;
7)添加leapdays函数,用来计算农历y年m月的天数。
int ceidolondlg::leapdays(int year)
if(leapmonth(year))
else8)添加monthdays函数,计算y年m月的总天数。
int ceidolondlg::monthdays(uint year, uint month)
return (lunarinfo[year-1900] &0x10000>>month))?30: 29;}
9)添加getlunar函数,根据输入的阳历日期来计算阴历日起。
customdate ceidolondlg::getlunar(customdate date)
long offset;
int i, leap=0, temp=0;
customdate retdate;
offset=daysfrom1900(date)-30;
for(i=1900; i<2050 &&offset>0; i++)
if(offset<0)
= i;leap = leapmonth(i);
bool isleap = false;
for(i=1; i<13 &&offset>0; i++)
elseif(isleap==true &&i==(leap+1))
isleap = false;
offset -=temp;
if(offset==0 &&leap>0 &&i==leap+1)
if(offset<=0)
= i;= offset ;
return retdate;
10)添加getlunarstring函数,将阴历日期转化成天干地支字符串。
char* ceidolondlg::getlunarstring(customdate date)
tchar sznongli[30], sznongliday[10],szshuxiang[10];
const char *ctiangan 天干。
const char *cdizhi子","丑","寅","卯","辰","巳","午", 未","申","酉","戌","亥"};
/地支。const char *cshuxiang
/生肖。const char *cdayname初一","初二","初三","初四","初五",初六","初七","初八","初九","初十",十一","十二","十三","十四","十五",十六","十七","十八","十九","二十",廿一","廿二","廿三","廿四","廿五",
廿六","廿七","廿八","廿九","三十"};农历日期。
const char *cmonname正","二","三","四","五","六", 七","八","九","十","十一","腊"};
//生成农历天干、地支、属相。
int nshuxiang = 4) %60) %12;
if ( nshuxiang < 0 ||nshuxiang >=sizeof(cshuxiang)/sizeof(cshuxiang[0])
return null ;
wsprintf(szshuxiang,"%s",cshuxiang[nshuxiang]);
int ntiangan = 4) %60) %10;
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...