万年历c++.docx

上传人:b****6 文档编号:16426270 上传时间:2023-07-13 格式:DOCX 页数:18 大小:16.86KB
下载 相关 举报
万年历c++.docx_第1页
第1页 / 共18页
万年历c++.docx_第2页
第2页 / 共18页
万年历c++.docx_第3页
第3页 / 共18页
万年历c++.docx_第4页
第4页 / 共18页
万年历c++.docx_第5页
第5页 / 共18页
万年历c++.docx_第6页
第6页 / 共18页
万年历c++.docx_第7页
第7页 / 共18页
万年历c++.docx_第8页
第8页 / 共18页
万年历c++.docx_第9页
第9页 / 共18页
万年历c++.docx_第10页
第10页 / 共18页
万年历c++.docx_第11页
第11页 / 共18页
万年历c++.docx_第12页
第12页 / 共18页
万年历c++.docx_第13页
第13页 / 共18页
万年历c++.docx_第14页
第14页 / 共18页
万年历c++.docx_第15页
第15页 / 共18页
万年历c++.docx_第16页
第16页 / 共18页
万年历c++.docx_第17页
第17页 / 共18页
万年历c++.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

万年历c++.docx

《万年历c++.docx》由会员分享,可在线阅读,更多相关《万年历c++.docx(18页珍藏版)》请在冰点文库上搜索。

万年历c++.docx

万年历c++

Mian函数

#include

#include"date.h"

usingnamespacestd;

intmain()

{

chari='9';

intyy,mm,dd;//用来接收日期

Queryq;

q.showMenu();

calenderc;//用来接收日期

cout<<"请输入要查询的日期:

";

cin>>yy>>mm>>dd;

c.readcalender(yy,mm,dd);

cout<<"选择对应数字进行操作:

";

while

(1)

{

cin>>i;

system("cls");//清除屏幕

q.showMenu();

q.doMenu(i);

q.showTip();

}

return0;

}

Date.h

#ifndefDATE_H_INCLUDED

#defineDATE_H_INCLUDED

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

classcalender

{

private:

intday;

intmonth;

intyear;

public:

calender();

calender(intd,intm,inty):

day(d),month(m),year(y){}

intdayInMnoth();//返回该月的天数,如闰年二月的天数,29

intgetMonth();//返回当前日期的月份

intgetYear();

intgetDay();

boolisLeapYear();//判断闰年

intnumeberOfdays();//返回一月份以来的天数

voidsetMonth(intmm);//更新当前日期的月份

voidsetYear(intyy);

voidsetDay(intdd);

intdifferDays();//距离1990.1.1相差多少天

intdifferDays(calender&d1);//相差多少天

intfirstDay();//当月的第一天是星期几

voiddisplayTitle();//输出月份和年份以及后面的星期几的名称

voiddisplayDates();//输出星期几下面的日期

voidreadcalender(intyy,intmm,intdd);//读入日期

voidweekDay();

};

classQuery

{

public:

calenderc;

Query();

voidQueryYear();//查询一年的日历

voidQueryMonth();//查询某年某月的日历表

voidQueryDay();//查询某年某月的某天

voidQuerydifferDays();//计时倒数天数

voidshowMenu();//显示菜单

voidshowTip();//显示操作提示

voiddoMenu(charn);

};

#endif//DATE_H_INCLUDED

实现文件

Date.cpp

#include"date.h"

calender:

:

calender()

{

year=0;

month=0;

day=0;

}

intcalender:

:

getMonth()//返回当前日期的月份

{

returnmonth;

}

intcalender:

:

getYear()

{

returnyear;

}

intcalender:

:

getDay()

{

returnday;

}

intcalender:

:

dayInMnoth()//返回当月的天数

{

switch(getMonth())

{

case1:

return31;

break;

case2:

return28+isLeapYear();

break;

case3:

return31;

break;

case4:

return30;

break;

case5:

return31;

break;

case6:

return30;

break;

case7:

return31;

break;

case8:

return31;

break;

case9:

return30;

break;

case10:

return31;

break;

case11:

return30;

break;

case12:

return31;

break;

}

return0;

}

boolcalender:

:

isLeapYear()//闰年的判断,返回true为闰年

{

intn=getYear();

if(n%4)

{

if(n%100==0)

{

if(n%400==0)

returntrue;

else

returnfalse;

}

else

returntrue;

}

else

returnfalse;

}

intcalender:

:

numeberOfdays()//返回一月份以来的天数

{

intn=getDay();

switch(getMonth()-1)

{

case0:

returnn;

break;

case1:

returnn+31;

break;

case2:

returnn+31+28+isLeapYear();

break;

case3:

returnn+31+28+isLeapYear()+31;

break;

case4:

returnn+31+28+isLeapYear()+31+30;

break;

case5:

returnn+31+28+isLeapYear()+31+30+31;

break;

case6:

returnn+31+28+isLeapYear()+31+30+31+30;

break;

case7:

returnn+31+28+isLeapYear()+31+30+31+30+31;

break;

case8:

returnn+31+28+isLeapYear()+31+30+31+30+31+31;

break;

case9:

returnn+31+28+isLeapYear()+31+30+31+30+31+31+30;

break;

case10:

returnn+31+28+isLeapYear()+31+30+31+30+31+31+30+31;

break;

case11:

returnn+31+28+isLeapYear()+31+30+31+30+31+31+30+31+30;

break;

}

return0;

}

intcalender:

:

differDays()//距离1900.1.1相差多少天

{

intn;

calenderd0(1,1,1900);//以1900年一月一日为起点,当天为星期一

if((getYear()-d0.getYear())%400!

=100)

n=(getYear()-d0.getYear())/4*1461+((getYear()-d0.getYear())%4)*365+numeberOfdays();

else

n=(getYear()-d0.getYear())/4*1461+((getYear()-d0.getYear())%4)*365+1+numeberOfdays();

returnn;

}

intcalender:

:

differDays(calender&d1)//与某个日期(d1)相差多少天

{

intn;

if(abs((getYear()-d1.getYear()))%400!

=100)

n=abs((getYear()-d1.getYear()))/4*1461+(((getYear()-d1.getYear()))%4)*365+numeberOfdays();

else

n=abs((getYear()-d1.getYear()))/4*1461+abs(((getYear()-d1.getYear()))%4)*365+1+numeberOfdays();

returnn;

}

intcalender:

:

firstDay()//当月第一天是星期几

{

intl=differDays()-getDay()+1;//当月第一天与1900年一月一日相差多少天

switch(l%7)

{

case0:

return0;

break;

case1:

return1;

break;

case2:

return2;

break;

case3:

return3;

break;

case4:

return4;

break;

case5:

return5;

break;

case6:

return6;

break;

}

return0;

}

voidcalender:

:

setYear(intyy)//更新年份

{

if(yy<1990)

cout<<"无法更新月份"<

year=yy;

}

voidcalender:

:

setMonth(intmm)//更新月份

{

if(mm>12||mm<1)

cout<<"无法更新月份"<

month=mm;

}

voidcalender:

:

setDay(intdd)//更新天数

{

if(dd>31||dd<1)

cout<<"无法更新天数"<

day=dd;

}

voidcalender:

:

displayDates()//打印日期

{

intmonthLength=dayInMnoth();

intdayValue=1;

intday=0,first=firstDay();

while(day

{

cout<

day++;

}

while(dayValue<=monthLength)

{

cout<

dayValue++;

if(day==6)

cout<

day=(day+1)%7;

}

if(day!

=0)

cout<

}

voidcalender:

:

displayTitle()//打印月份与年份

{

switch(getMonth())

{

case1:

cout<<"一月"<

break;

case2:

cout<<"二月"<

break;

case3:

cout<<"三月"<

break;

case4:

cout<<"四月"<

break;

case5:

cout<<"五月"<

break;

case6:

cout<<"六月"<

break;

case7:

cout<<"七月"<

break;

case8:

cout<<"八月"<

break;

case9:

cout<<"九月"<

break;

case10:

cout<<"十月"<

break;

case11:

cout<<"十一月"<

break;

case12:

cout<<"十二月"<

break;

default:

cout<<"错误!

"<

break;

}

cout<<"星期一"<<""<<"星期二"<<""<<"星期三"<<""<<"星期四"<<""

<<"星期五"<<""<<"星期六"<<""<<"星期日"<<""<

}

voidcalender:

:

readcalender(intyy,intmm,intdd)//读取年月日

{

if(dd>0)

setDay(dd);

else

setDay(0);

if(mm>0)

setMonth(mm);

else

setMonth(0);

setYear(yy);

}

voidcalender:

:

weekDay()//确认某天是星期几

{

switch(differDays()%7)

{

case0:

cout<<"星期日"<<"";

break;

case1:

cout<<"星期一"<<"";

break;

case2:

cout<<"星期二"<<"";

break;

case3:

cout<<"星期三"<<"";

break;

case4:

cout<<"星期四"<<"";

break;

case5:

cout<<"星期五"<<"";

break;

case6:

cout<<"星期六"<<"";

break;

}

}

Query:

:

Query()

{

c.setDay(0);

c.setMonth(0);

c.setYear(0);

}

voidQuery:

:

QueryYear()//查询一年的日历

{

intmm;

for(c.setMonth(mm=0);mm<12;++mm)

{

c.displayTitle();

c.displayDates();

}

}

voidQuery:

:

QueryMonth()//查询某年某月的日历表

{

c.displayTitle();

c.displayDates();

}

voidQuery:

:

QueryDay()//查询某年某月的某天是星期几

{

c.weekDay();

}

voidQuery:

:

QuerydifferDays()//计时倒数天数

{

c.differDays();

calenderd;

intyy,mm,dd;

cout<<"请输入要倒计时的日期:

";

cin>>yy>>mm>>dd;

d.readcalender(yy,mm,dd);

cout<<"距离"<

}

voidQuery:

:

showMenu()//显示菜单

{

cout<<"|------------------------------------------|"<

cout<<"|万年历|"<

cout<<"|------------------------------------------|"<

cout<<"|1.查询某月的月历|"<

cout<<"|2.打印某年的日历|"<

cout<<"|3.距离某日倒计时|"<

cout<<"|4.某日具体星期几|"<

cout<<"|0.安全退出本系统|"<

cout<<"|------------------------------------------|"<

}

voidQuery:

:

showTip()//显示操作提示

{

cout<

cout<<"-------------------操作完成-----------------"<

cout<<"-----------------选择0-4继续---------------"<

cout<<"请选择:

";

}

voidQuery:

:

doMenu(charn)//执行菜单

{

switch(n)

{

case'1':

QueryMonth();

break;

case'2':

QueryYear();

break;

case'3':

QuerydifferDays();

break;

case'4':

QueryDay();

break;

case'0':

exit

(1);

break;

default:

cout<<"输入错误!

";

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2