日历管理系统源程序

合集下载

C语言实训--万年历源代码

C语言实训--万年历源代码

C语言实训--万年历源代码# include#include#include#include#include# define YEAR 365int numday[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}};int leap(int year);int calday(int y,int m);int counterdays(int year,int month,int day);int week(int year,int month,int day);int eachyeartotal(int year,int month,int day);int maxDay(int y,int month);void print(int y,int m,int w);void festival (int year,int month,int day);int IsLeap(int y);int guanli(int i);void rili(int year,int month);int rili1();void rili2();void rili3();void rili4();void rili5();void fan();void show(int year,int month,int date,int sec,int mini,int hour);int main(){int i;printf("***************************************\n"); printf("1.查询日历,输入年份:\n");printf("2.查询该月日历及对应星期,输入年份和月份:\n"); printf("3.查询星期几及节日,输入年月日:\n");printf("4.距您输入日期还有多少天,输入日期:\n"); printf("5.通过键盘上下控制不同年月日:\n");scanf("%d",&i);guanli(i);return 0;}int guanli(int i){switch(i){case 1:rili1();return main();case 2:rili2();return main();case 3:rili3();return main();case 4:rili4();return main();case 5:rili5();return main();}return 0;}int rili1(){int year;int n,i;printf("输入年份:");scanf("%d",&year);printf("the calendar of the year%d\n",year);printf("\n");printf("=============================\n"); for(i=1;i<13;i++){printf(" %d月份\n",i);rili(year,i);}n = leap(year);return 0;}void rili2(){int year,month,w;printf("输入年月:");scanf("%d%d",&year,&month);w=calday(year,month);print(year,month,w);}void rili3(){int year,month,day,number;printf("输入年月日:");scanf("%d%d%d",&year,&month,&day);festival(year,month,day);number= week(year,month,day);printf("星期%d",number);}void rili4(){int year,month,day;printf("输入年月日:");scanf("%d%d%d",&year,&month,&day); eachyeartotal( year,month,day);counterdays(year,month,day);}void rili5(){int year,month,date,sec,mini,hour;fan();show(year,month,date,sec,mini,hour);}int leap(int year){int n=(year%4==0 && year%100!=0 || year%100!=0); return n;}void rili(int year,int month){int i,day,first_day,flag,year1,year2;int temp = 6;flag =leap(year);year1=year/100;year2=year%100;if(year>2000){year1=year1-20;day = year1/4;day+=(YEAR+24)*year1+YEAR*year2+(year2-1)/4;if(year>2000)day++;switch(month){case 1:day; break;case 2:day+=31;break;case 3:day+=59+flag;break;case 4:day+=90+flag;break;case 5:day+=120+flag;break;case 6:day+=151+flag;break;case 7:day+=181+flag;break;case 8:day+=212+flag;break;case 9:day+=243+flag;break;case 10:day+=273+flag;break;case 11:day+=304+flag;break;case 12:day+=334+flag;break;}day+=temp;first_day=day%7;}else{year1 = 20-1-year;year2=100-year2-1;day+=(YEAR+24)*year1+YEAR*year2+year2/4; switch(month){case 12:day+=31;break;case 11:day+=61;break;case 10:day+=92;break;case 9:day+=122;break;case 8:day+=153;break;case 7:day+=184;break; case 6:day+=214;break; case 5:day+=245;break; case 4:day+=275;break; case 3:day+=306;break; case 2:day+=334+flag;break; case 1:day+=365+flag;break; }day-=temp;day = day%7;first_day=(7-day)%7;}switch(month){case 1:case 2:month=28+flag;break; case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:month=30;break; case 12:month =31;break;}for(i=1;i<4*first_day;i++) printf(" ");for(i=0;i<month;i++)< p="">{printf("%4d",i+1);if((first_day+i)%7==6)printf("\n");}printf("\n");printf("===============================\n");}///////////////////////////////////////////////////////////int counterdays(int year,int month,int day){int year1,days0,days1,month1,days,day1;time_t timep;struct tm*p;time(&timep);p=gmtime(&timep);year1=(1900+p->tm_year);month1=(1+p->tm_mon);day1=(p->tm_mday);days0=(year-1)*365 + (year-1)/4 - (year-1)/100 + (year-1)/400 +eachyeartotal (year,month,day);days1=(year1 - 1)*365+(year1-1)/4-(year1-1)/100 + (year1 - 1)/400 +eachyeartotal (year1,month1,day1);days=days0-days1;printf("\n今天距%d年%d月%d日还有%d天\n\n",year,month,day,days);return days;}int eachyeartotal(int year,int month,int day){int i,sum=0;for(i=1;i<month;i++)< p="">{sum+=maxDay(year,i);}sum+=day;return sum;}int IsLeap(int y){if(y%4==0 && y%100!=0 || y%400==0) return 1; else return 0;}int maxDay(int y,int month){int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};if(IsLeap(y))a[1]=29;return a[month-1];}///////////////////////////////////////void festival (int year,int month,int day){if (month==1 && day==1) printf (",这天是元旦");if (month==2 && day==14) printf (",这天是情人节"); if (month == 3)switch(day){case 8:printf (",这天是妇女节"); break;case 12:printf (",这天是植树节");}if (month==1 && day==1) printf (",这天是愚人节");if(month == 5)switch (day){case 1:printf(",这天是劳动节");break;case 4:printf(",这天是青年节");}if (month==6 && day==1) printf (",这天是儿童节");if (month==7 && day==1) printf (",这天是建党节");if (month==8 && day==1) printf (",这天是建军节");if (month==9 && day==10) printf (",这天是教师节");if (month==10 && day==1) printf (",这天是国庆节");printf("\n");}int week(int year,int month,int day){int number = (year-1)+(year-1)/4 - (year-1)/100+(year-1)/400+eachyeartotal(year,month,day);number = number%7;return number;}/////////////////////////////////////////////void print(int y,int m,int w){int i,l;printf("Calendar %d-%02d\n",y,m);printf("---------------------\n");printf("Su Mo Tu We Th Fr Sa \n");printf("---------------------\n");for (i=0;i<w;i++)< p=""> printf(" ");if (IsLeap(y))l=1;elsel=0;for (i=1;i<=numday[l][m-1];i++) {printf("%-3d",i);w++;if (w%7==0)printf("\n");}if (w%7) printf("\n");printf("---------------------\n"); }int calday(int y,int m){int d=0,w;while (y>1910){if (IsLeap(y)) d+=366;else d+=365;y--;}while (m>1){ --m;d+=numday[0][m-1];}w=(d+1)%7;return w;}//////////////////////////////////////////void show(int year,int month,int date,int sec,int mini,int hour) {const char month_str[][4]={"","Jan","Feb","Mar","Apl", "May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};const int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};int i,j,wdays,mdays,days;for(i=1,days=0;i<year;i++)< p="">{if(leap(i))days += 366;}else{days += 365;}}for(i=1;i<month;i++)< p="">{if(i==2 && leap(year)){days+=29;}else{days+=month_day[i];}}printf(" %s.%d.%d %d:%d:%d \n",month_str[month],date,year,hour,mini,sec);printf(" 一二三四五六日\n");wdays = days % 7;for( j = 0; j < wdays; j++){printf(" ");}if(month == 2 && leap(year)){mdays=29;}else{mdays= month_day[month];}for(i=1;i<=mdays;i++){if( i > 1 && days % 7 == 0 ){printf("\n");}printf("%4d",i);days=days+1; }printf("\n---------------------------\n\n\n");}{time_t rawtime;struct tm *info;int year,month,date,sec,mini,hour; char ch;time ( &rawtime );info = localtime ( &rawtime );year =info->tm_year + 1900; month =info->tm_mon + 1;date =info->tm_mday;hour =info->tm_hour;mini =info->tm_min;sec =info->tm_sec;while(1){show(year,month,date,sec,mini,hour); printf("↑......上一年\n\n");printf("↓......下一年\n\n");printf("←....前一个月\n\n");pr intf("→....后一个月\n\n");printf("Esc.......退出\n\n");ch=getch();switch(ch){case 27://Ecs exit(0);case -32://Navigatorch=getch();if(ch==77){//Rightyear+=(month==12)?1:0;month=month%12+1;}else if(ch==75){year-=(month==1)?1:0; month=(month-2+12)%12+1; }else if(ch==72)year--;else if(ch==80)year++;system("cls");}}</month;i++)<></year;i++)<></w;i++)<></month;i++)<></month;i++)<>。

c语言综合练习打印日历教程附完整源程序

c语言综合练习打印日历教程附完整源程序

c语⾔综合练习打印⽇历教程附完整源程序综合练习打印⽇历练习的功能是:由⽤户输⼊⼀个年后,然后就可以分⽉输出当年的年历。

例如输⼊2010,则输出2010年的年历。

如图,图中显⽰的年历的⼀部分:学习⽬标:继续熟悉数组的使⽤;继续熟悉函数的使⽤了解程序算法设计及N-S流程图;综合使⽤函数和数组完成设计任务⼀分析程序算法图2 算法分析图先来分析要解决的问题,如图2程序算法分析如下:1.整个程序⼤致可以分为两个主要部分:输⼊年份;打印该年的⽇历,如图2①所⽰。

2.打印⽇历时,为了清楚的知道打印的是哪⼀年的⽇历,先打印年份,接着从1⽉~12⽉,分别打印个⽉份的名称(英⽂缩写),然后打印星期的名称(英⽂缩写),最后在打印当⽉的⽇历,如图2②所⽰。

3.要打印某⽉的⽇历,⾸先必须⽣成当⽉⽇历,然后在打印,如图2③所⽰。

4.⽣成每个⽉的⽇历,需要知道当⽉有多少天,当⽉每⼀天是星期⼏,然后⽣成当⽉⽇历并保存,如图2④所⽰。

5.要知道每⽉有多少天是⽐较容易的,除了2⽉份外,其它⽉份的天数都是确定的,关键就是确定2⽉份有⼏天,如图2⑤所⽰。

6.如果当年是闰年,则2⽉份有29天,否则为28天。

如图2⑥所⽰。

7.要想确定当⽉每⼀天是星期⼏,需要知道当年第⼀天是星期⼏,然后类推,每7天⼀个周期,如图2⑦所⽰。

8.经过以上的4~7步,可以⽣成⽇历,然后设计存储格式,保存⽇历。

9.设计好输出格式,打印已⽣成的⽇历即可,如图2⑧所⽰。

将图2加以综合和细化,最终可以得到整个程序的N-S流程图,如图3所⽰。

图3 算法分析N-S流程图⼆、按功能划分函数经过上⾯的分析,发现在这个程序设计中有⼏个关键部分:①确定每⽉有多少天,关键是确定当年是否为闰年。

②确定每天是星期⼏,关键是确定当年1⽉1⽇是星期⼏。

③设计数据的存储格式和打印格式。

对于较复杂的程序,可以把功能分解,每个⼩功能⽤⼀个函数实现,使程序的总体结构更加清晰。

在这个程序中,应考虑使⽤以下4个函数。

日历源代码——java

日历源代码——java

日历源代码——java//import java.sql.Date;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;public class GregorianCalendar日历 {public static void main(String[] args) { //设置不同地区Locale.setDefault();//创建当前日历对象GregorianCalendar now = new GregorianCalendar();//从当前时期对象是取出时间日期对象//编辑错误:Type mismatch: cannot convert from java.util.Date to java.sql.DateDate date = now.getTime();//将时间日期对象按字符形式打印System.out.println(date.toString());//重新将时间对象设置到日期对象中now.setTime(date);//从当前日期对象是取出当前月份、日期int today =now.get(Calendar.DAY_OF_MONTH);int month = now.get(Calendar.MONTH);//获取本月开始日期now.set(Calendar.DAY_OF_MONTH, 1);//获取本月开始日期在一周中的编号int week = now.get(Calendar.DAY_OF_WEEK);//打印日历头并换行设置当前月中第一天的开始位置System.out.println("星期日星期一星期二星期三星期四星期五星期六");//设置当前月中第一天的开始位置for( int i = Calendar.SUNDAY; i < week; i++){ System.out.print(" ");//按规格打印当前月的日期数字while(now.get(Calendar.MONTH) ==month){//取出当前日期int day =now.get(Calendar.DAY_OF_MONTH);//设置日期数字小于10与不小于10两种情况的打印规格if(day < 10){//设置当前日期的表现形式if(day == today)System.out.print(" <" + day + "> ");elseSystem.out.print(" " + day + " ");}else{//设置当前日期的表现形式if(day == today)System.out.print(" <" + day + "> ");elseSystem.out.print(" " + day + " ");}//设置什么时候换行if(week == Calendar.SATURDAY)System.out.println();//设置日期与星期几为下一天now.add(Calendar.DAY_OF_MONTH, 1);week = now.get(Calendar.DAY_OF_WEEK);}}}}。

基于AT89C51单片机的多功能电子万年历的设计_毕业设计

基于AT89C51单片机的多功能电子万年历的设计_毕业设计

本科毕业设计(论文)基于AT89C51单片机的多功能电子万年历的设计AT89C51 SCM-BASED ELCTRONICDESIGN CALENDAR学生姓名学院名称信电工程学院专业名称电子信息工程技术指导教师年月日摘要本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。

系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。

万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。

此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。

关键字AT89C51;电子万年历; DS1302目录第一章引言................................................................................................. 错误!未定义书签。

1.1课题研究的背景 (1)1.2课题的研究目的与意义 (1)1.3课题解决的主要内容 (1)第二章系统的总体设计 (2)2.1系统方案的构想与确定 (2)2.2 器件的选用 (2)2.2.1单片机的选择 (2)第三章系统硬件的设计 (4)3.1系统硬件电路设计 (4)3.1.1系统硬件框图 (4)3.1.2 AT89C51单片机 (4)3.1.3 8位移位寄存器74LS164(串行输入,并行输出) (8)3.1.4 ds1302 (12)第四章系统的软件设计 (15)4.1 主程序 (15)4.2 从1302读取日期和时间程序 (16)4.3系统源代码 (16)第五章 PROTEUS使用 (29)5.1编程环境PROTEUS (29)5.2用PROTEUS ISIS对电子万年历的硬件电路设计 (29)5.3用PROTEUS ISIS进行电子万年历的仿真测试 (33)结论 (36)致谢 (37)参考文献 (38)附录............................................................................................................... 错误!未定义书签。

cydia好玩的源插件

cydia好玩的源插件

cydia好玩的源插件完美越狱后最好玩的当然就是CYDIA插件啦!总结下苹果设备在5.1.1完美越狱后都需要安装那些CYDIA越狱插件!希望能够对大家有所帮助。

【Zephyr】——完全取代HOME键,轻松进行多任务管理。

很强的一款手势类插件插件。

【Barrel】——给你的iOS设备主屏幕翻页增加不同的切换效果,让你翻页不再单调【FaceBreak】——一款让您在3G下也能享受Facetime乐趣的插件【AirBlueSharing】——挣脱iOS设备不能通过蓝牙分享文件的桎梏【TruPrint】——这是一个越狱后才能安装的应用程序,用以提高AirPrint的兼容性,事实上,因为有了这款软件,才让iOS设备能够兼容大部分的打印机【Double At】——是您可以通过双击键盘上的@字符快速的输入您的邮件地址的一款插件【KillBackground】——让您一键即可关闭所有的后台程序【iGotYa】——这是一款能够起到在您的iOS设备丢失后能够增加一些找回可能的插件。

他的工作原理是当您的iOS设备连续输入错误密码后即开启摄像头拍摄当前使用者的面貌并且加上其当前的地址信息以邮件的形式发送给您。

(实际上不会起什么作用,小偷没有那么傻)【iBlacklist】——一款提供通讯录黑名单功能的插件,能够自动拒绝您不想要的电话和短信【AdBlocker】——这是一款起到一定广告拦截效果的插件,生效于Safari浏览器以及部分软件内【IconRenamer】——让您可以轻松的对软件图标进行重命名的插件【MultiIconMover】——一款可以快速将多个进行移动的意义级别插件【GridLock】——这款插件使您的桌面图标不再自动排列,而是可以将其放置在任意位置【SpyPhoto】——这款插件的作用是让您可以在拍照的时候不发出任何声音并且可以在运行其他程序时进行拍照【Cyntact】——这款插件让您的联系人列表不再单调,它提供了给联系人添加任意图片的功能【AnyAttach】——突破iOS对邮件附件的限制,使您可以添加任何附件,就像在电脑上使用一样。

基于Proteus仿真之万年历(附部分程序)

基于Proteus仿真之万年历(附部分程序)
Keywords:Proteus/MCU/Electronic Perpetual ca.1endar/Simulation
3
1 前言
Proteus 是由英国 Labcenter electronics 公司开发的 EDA 工具软件,自 1989 年出现 至今已有二十多年的历史,在全球广泛使用。该软件集成了高级原理布图、混合模式 SPICE 电路仿真、PCB 设计以及自动布线来实现一个完全的电子设计系统。
电子万年历的外部面板显示年、月、日、时、分、星期、节日,有着四个按键,分别为 选择(确认)、加、减、闹钟。 2.2 元件和电路
2.2.1 元件介绍: 2.2.1.1、控制单元:AT89C52 单片机(图一) (1)、AT89C52 提供以下标准功能:8k 字节 Flash 闪速存储器,256 字节内部 RAM,32 个 I/O 口线,3 个 16 位定时/计数器,一个 6 向量两级中断结构,一个全双工串行通信口, 片内振荡器及时钟电路。 (2)、AT89C52 有 6 个中断源,2 个中断优先级,IE 寄存器控制各中断位,IP 寄存器中 6 个中断源的每一个可定为 2 个优先级。 (3)、数据存储器:AT89C52 有 256 个字节的内部 RAM,80H-FFH 高 128 个字节与特殊 功能寄存器(SFR)地址是重叠的,也就是高 128 字节的 RAM 和特殊功能寄存器的地址是相 同的,但物理上它们是分开的。 (4)、AT89C52 相对比 AT89C51 多一个定时器 2,可以有三种工作方式,分别为:1、捕 获方式;2、自动重装载(向上或向下计数器)方式;3、波特率发生器。 (5)、AT89C52 工作极限参数:见表一。
片,附加 31 字节静态 RAM,采用 SPI 三线接口与 CPU 进行同步通信,并可采用突发方式一 次传送多个字节的时钟信号和 RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年, 一个月小与 31 天时可以自动调整,且具有闰年补偿功能。

电子万年历系统课程设计

计算机学院信息管理与信息系统专业《管理信息系统课程设计》报告(2010/2011学年第一学期)学生姓名:学生班级:学生学号:指导教师:2011年1月15 日目录第一章课程设计目的和要求 (1)1.1课程设计主要目的 (1)1.2本课程设计主要目标 (1)1.3课程设计要求 (1)第二章课程设计任务背景与内容 (2)2.1任务背景介绍 (2)2.2任务内容 (2)第三章详细设计说明 (3)3.1总体模块图 (3)3.11程序设计组成框图 (3)3.12程序流程图 (4)第四章程序运行及调试 (8)4.1 调试与测试 (8)4.2 分析及结论 (9)4.3 程序运行调试图 (10)第五章课程设计心得与体会 (13)附录1 参考文献 (14)附录2 程序 (15)电子万年历系统第一章课程设计目的和要求1.1课程设计的目的C++语言程序设计的主要目的是要求我们遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。

根据自己学习到的内容,在设计的过程中充分的将老师所教和课本固有充分发挥出来。

使得理论和实践联系起来,同时也培养综合运用C++程序设计的素质。

培养用C++编写程序的能力,和养成良好的编写程序的习惯。

通过本次实践学习,可以使自身对所学知识进一步消化,理解并掌握,锻炼和提高综合运用所学知识解决实际问题的能力,熟悉编译工具的使用方法和环境。

1.2课程设计的目标本课程设计的目标:1.巩固和加深学生对C++语言课程的基本知识的理解和掌握;2.掌握C++语言编程和程序调试的基本技能;3.掌握利用C++语言进行软件设计的方法;4.提高书写程序设计说明文档的能力;5.提高运用C++语言解决实际问题的能力。

1.3课程设计要求基本要求:1.分析课程设计题目的要求;2.对系统功能模块进行分析,写出详细设计说明文档;3.编写程序代码,调试程序使其能正确运行;4.设计完成的软件要便于操作和使用;5.设计完成后提交课程设计报告。

万年历_ARM课程设计

目录4 (7)5.总结 (8)万年历系统摘要:万年历在日常生活中最常见,应用也最广泛。

本次课程设计主要就是设计一款电子万年历系统,本次嵌入式系统课程设计以STM32F103RB芯片为核心,主要能够实现显示时间、日期、节日、以及24节气和12生肖等功能。

其中时间显示包括时、分、秒,日期显示包括年、月、日,显示部分通过电脑上的超级终端进行显示,当程序编译无误后,将其下载至开发板中,然后通过超级终端进行显示,开始时用户需要自行设置时间和日期,然后万年历系统才会按照用户设计的功能开始工作。

关键字:STM32F103RB 超级终端时间日期显示 24节气显示十二生肖显示1引言STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM 内核。

按性能有不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。

此次我们所使用的STM32F103RB芯片就是增强型系列,增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。

两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。

时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于MHz。

ARM公司的高性能”Cortex-M3”内核具有一流的外设(1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度)、低功耗(在72MHz 时消耗36mA(所有外设处于工作状态),待机时下降到2μA)、最大的集成度(复位电路、低电压检测、调压器、精确的RC振荡器等)\简单的结构和易用的工具,STM32F10x重要参数主要有供电、容忍5V的I/O管脚、优异的安全时钟模式、带唤醒功能的低功耗模式、内部RC振荡器、内嵌复位电路、工作温度范围是-40°C至+85°C或105°C。

Mac系统的邮件和日历设置教程

Mac系统的邮件和日历设置教程在Mac系统中,邮件和日历是常用的工具,可以帮助我们管理邮箱和日程安排。

本教程将详细介绍如何设置和使用Mac系统的邮件和日历功能,以帮助您更高效地处理电子邮件和日程安排。

1. 邮件设置Mac系统内置的邮件应用程序可以方便地管理多个邮箱账户。

以下是设置Mac邮件应用程序的步骤:步骤一:打开邮件应用程序。

在Dock栏或者"应用程序"文件夹中找到并打开"邮件"应用程序。

步骤二:添加邮箱账户。

在顶部菜单栏中选择"邮件",然后选择"偏好设置"。

在弹出的窗口中,点击"账户"选项卡,并点击左下角的"+"按钮来添加邮箱账户。

步骤三:填写邮箱账户信息。

根据您的邮箱提供商选择合适的选项,并填写邮箱账户的详细信息,包括邮箱地址和密码。

点击"继续"按钮,系统会自动进行配置。

步骤四:完成设置。

根据需要自定义其他邮件设置,例如邮件服务器配置、邮件存储位置等。

设置完成后,您就可以通过邮件应用程序接收和发送电子邮件了。

2. 日历设置Mac系统的日历应用程序可以帮助您管理个人和工作日程安排,并与其他设备进行同步。

以下是设置Mac日历应用程序的步骤:步骤一:打开日历应用程序。

在Dock栏或者"应用程序"文件夹中找到并打开"日历"应用程序。

步骤二:添加日历账户。

在顶部菜单栏中选择"日历",然后选择"偏好设置"。

在弹出的窗口中,点击"账户"选项卡,并点击左下角的"+"按钮来添加日历账户。

步骤三:选择日历源。

根据需要选择要添加的日历源,您可以选择iCloud、Google、Exchange等日历同步服务,也可以选择本地日历。

步骤四:登录并同步。

根据您选择的日历源,填写相应的账户信息,并登录账户。

多功能电子日历的开发论文

目录摘要关键字前言第一章 VB语言概述1.1、VB简介1.2、VB语言的基本特点及VB应用程序的基本持点1.3、为何我选择VB作为开发语言1.4、VB6.0应用的基本开发方法第二章用VB开发多功能日历程序2.1、本程序运行界面简介2.2、本程序部分控件的设置2.3、主程序部分代码第三章毕业设计总结第四章主要参考文献附录摘要:在日常生活和工作中经常有人用到农历和公历的查询问题。

因此,我借这次毕业设计之机,在辅导老师的指导下,编写了一个可以在VB6下正常运行的日历、计算器多功能应用程序,编程的思路是:先把公、农历的数据用数组查询设置好,再通过算法转换成具体应用。

程序应用了不规则窗体技术,使得窗体比较美观。

单击属相标志可以退出程序。

单击时钟数字将返回到今天。

单击查询控制面板开关将向下拉出查询控制面板。

.关键字:农历公历转换及计算器、查询控制面板、VB6。

多功能电子日历的开发前言电脑已经成为挂在我们嘴角的一句口头禅,它已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。

Windows 系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。

然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。

以前开发Windows下软件是专业人员的工作,需要掌握许多专业知识和经过特殊的培训才能胜任。

现在不同了,即使你没有接受过严格的程序设计训练,使用Visual Basic 也一样能够开发出功能强大、适合自己特殊需求的应用程序了。

Visual Basic继承了Basic 语言易学易用的特点,特别适合于初学者学习Windows系统编程。

我作为一名中央电大的学生,对从事计算机操作和编程工作有着特殊的爱好,在工作和学习之余,我时常钻研专业课基础理论,经常用VB搞一些小程序,在工作中经常有人问到农历和公历的查询问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称:日历管理器的开发
说明:显示日历。

要求:
1)根据用户输入的年份,自动产生每个月的日期列表;
2)自定义显示日历的形式。

#include "iostream"
#include "string"
#include "iomanip"
using namespace std;
int monthdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};
string weekday[7]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; string monthname[12]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
string tiangan[10]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
string dizhi[12]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
string shengxiao[12]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};
void showcalendar(int f);
void showpermoncal(int mon,int monthweek,int flag);
int main()
{
int f;
cout<<"请选择操作:"<<endl<<"1.查询某年日历;"<<endl<<"2.查询某年某月的日历;"<<endl<<"3.查询某天是星期几"<<endl;
cin>>f;
showcalendar(f);
return 0;
}
void showcalendar(int f)
{
int year,month,day;
int flag=0,mon=1;
int monthweek,week;
int totaldays;
int T,D,S;
//天干,地支,生肖
cout<<"请输入年份:";
cin>>year;
totaldays=(year-1)*365+(year-1)/4+(year-1)/400-(year-1)/100;
week=(totaldays+1)%7;
monthweek=week;
T=(year+6)%10;
D=(year+8)%12;
S=D;
if((year%4==0&&year%100!=0)||(year%400==0)) flag=1;
cout<<endl<<" *****"<<year<<"年*****"<<endl<<endl;
cout<<" "<<shengxiao[S]<<"年"<<endl;;
cout<<" 农历"<<tiangan[T]<<dizhi[D]<<"年"<<endl<<endl;
if(f>=2)
{
cout<<"请输入月份:";
cin>>month;
if(f==3)
{
cout<<"请输入日期:";
cin>>day;
while(mon<month)
totaldays+=monthdays[mon++-1];
if(month>2&&flag) totaldays++;
totaldays=totaldays+day-1;
week=(totaldays+1)%7;
cout<<year<<"年"<<month<<"月"<<day<<"日"<<" "<<weekday[week]<<endl;
return;
}
while(mon<=12)
{
if(mon==month)
{showpermoncal(mon,monthweek,flag); break;}
if(mon==2&&flag) monthweek++;
monthweek=(monthweek+monthdays[mon++-1])%7;
}
return;
}
while(mon<=12)
{
showpermoncal(mon,monthweek,flag);
if(mon==2&&flag) monthweek++;
monthweek=(monthweek+monthdays[mon++-1])%7; }
}
void showpermoncal(int mon,int monthweek,int flag) {
cout<<monthname[mon-1]<<endl;
cout<<"***************"<<endl;
cout<<"Sun Mon Tue Wen Tur Fri Sat"<<endl;
for(int i=0;i<monthweek;i++) cout<<" ";
for(int j=0;j<monthdays[mon-1];j++)
{
cout<<setw(2)<<j+1<<" ";
if((j+1+monthweek)%7==0) cout<<endl;
}
if(mon==2&&flag) cout<<"29";
cout<<endl<<endl;
}
// 定义控制台应用程序的入口点。

//。

相关文档
最新文档