下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<iostream.h>class dateint year,month,day; public: date(int y,int m,int d) /日期参数int型的构造函数 year=y; month=m; day=d; date(char *s) /日期参数为字符串的构造函数 year=(int (s0)-48)*1000+(int (s1)-48)*100+(int (s2)-48)*10 +(int (s3)-48); /转化为数据成员年 month=(int (s4)-48)*10+(int (s5)-48);/转化为数据成员月 day=(int (s6
2、)-48)*10+(int (s7)-48); /转化为数据成员日 void input() /输入日期 cin>>year; cin>>month; cin>>day; void output() /输出日期 cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl; date nextdate() /计算下一日函数 int test13=0,31,28,31,30,31,30,31,
3、31,30,31,30,31;/平年每月的天数分布 int i=month; if(i=2&&(year%4=0&&year%100!=0)|(year%400=0) /月份为2月且是闰年 if(day=29) date a(year,3,1); return a; /刚好是最后一天,返回3月1日 else date a(year,2,day+1); return a; /否则返回日期加1 else if(i=12&&day=31) /若是最后一天就返回下年的第一天 date a(year+1,1,1); return a; else /其他情况
4、 if(day=testi) date a(year,i+1,1); return a; /刚好最后一天,返回下个月1日 else date a(year,i,day+1); return a; /否则返回日期加1 date pirrodate() /计算前一日函数 int test13=0,31,28,31,30,31,30,31,31,30,31,30,31;/平年每月天数分布 int i=month; if(i=3&&(year%4=0&&year%100!=0)|(year%400=0)/月份为三月且是闰年 if(day=1) date a(year,2
5、,29); return a; /刚好第一天,返回2月29日 else date a(year,3,day-1); return a; /否则返回日期减1 else if(i=1&&day=1) /若是第一天就返回上一年最后一天 date a(year-1,12,31); return a; else /不是闰年3月的情况 if(day=1) date a(year,i-1,testi-1); return a;/刚好第一天,返回前个月最后一天 else date a(year,i,day-1); return a; /否则返回日期减1 date dateafter(int d
6、) int test13=0,31,28,31,30,31,30,31,31,30,31,30,31;/平年每月天数分布 int m=month; int y=year; while(day+d>=28) /当日加上d日大于=28,要进行延伸分析 if(m=2) /2月份情况 if(y%4=0&&y%100!=0)|(year%400=0) /是闰年 if(day+d-29)>0) /日期加d减29天大于0,表明延伸到下个月 d=d-29; /d减29 m+; /月份加1 else break; else if(day+d-28)>0) /不是闰年 d=d-2
7、8; /d减28 m+; /月份加1 else break; else /其他月份情况 if(day+d-testm>0) /日期加d减当月天数大于0,表明延伸到下个月 d=d-testm; /d循环减当月天数 m+; /月份加1 else break; if(m>12) /月份超过12,表明延伸到下一年 m=m-12; y+; date a(y,m,d+day); /返回d天后日期 return a; date datebefore(int d) int test13=0,31,28,31,30,31,30,31,31,30,31,30,31;/平面每月天数分布 int m=mo
8、nth; int y=year; while(day-d)<=0) /日期减d小于0,要进行延伸分析 if(m=3) /3月分情况 if(y%4=0&&y%100!=0)|(year%400=0) /是闰年 d=d-29; /d减29 m-; /月份减1 else d=d-28; /不是闰年,d减28 m-; /月份减1 else /其他月份情况 d=d-testm; /d循环减当月天数 m-; /月份减1 if(m<=0) /月份小于0 ,表明要延伸到前一年 m=m+12; y-; date a(y,m,day-d); /返回d天前日期 return a; ;vo
9、id main()date t(0,0,0); date a("20071231"); /用字符串构造一个日期 a.output(); t=a.nextdate(); /下一日日期 cout<<"下一日:" t.output(); date c("20080101"); c.output(); t=c.pirrodate(); /前一日日期 cout<<"前一日:" t.output(); date b(0,0,0); cout<<"输入一个日期:"<<endl; /输入一个日期 b.input(); t=b.dateafter(90); /90天后日
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度新材料研发与代工合同
- 2024年度仓储合同范本
- 2024年度广告发布合同标的说明
- 2024年度版权许可及发行合同
- 2024年度存量房买卖居间服务合同
- 2024年度技术服务合同服务项目和技术要求
- 2024年度新能源汽车充电车库建设合同
- 2024年度版权许可使用合同:影视作品授权播放协议
- 2024年度技术咨询合同:企业数字化转型战略规划
- 2024年度宾馆装修工程进度合同
- 消防培训市场分析报告
- 人工智能导论-课件 第1章 人工智能的前世今生
- 2024年安徽交控集团招聘笔试参考题库含答案解析
- 胶原蛋白相关项目实施方案
- 《身边的化学》高中化学校本课程
- 苏科版八年级生物上册知识点汇总
- 建立有效的财务内控体系
- (完整文本版)《英语听力教程3》听力原文与答案
- 天津宁河区电视台招聘考试真题
- 多媒体技术在中小学教学中的实施与效果评价
- (糖尿病的健康教育)课件PPT
评论
0/150
提交评论