日期类的应用
来源:互联网 发布:nginx 4层负载均衡 编辑:程序博客网 时间:2024/06/15 05:22
设计一个日期类date,包括年月日等私有数据成员,要求通过重载运算符实现日期的基本运算,如某一日期加上天数,某一日期减去天数和两日期相差的天数等。
#include<iostream.h>
const intday_tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,31,30,31,30,31}};
//day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年
class date
{
private:
intyear,month,day;
public:
date(){};
date(inty,int m,int d){year=y;month=m;day=d;}
voidsetday(int d){day=d;}
voidsetmomth(int m){month=m;}
voidsetyear(int y){year=y;}
intgetday(){return day;}
intgetmonth(){return month;}
intgetyear(){return year;}
intleap(int); //判定制定的年份是否为闰年
intdton(date &); //将制定的日期转换为从0年0月0日起的天数
datentod(int); //将制0年0月0日起的天数转换为对应的日期
dateoperator+(int days) //返回一日期加一天数得到的日期
{
datedate;
intnumber=dton(*this)+days;
date=ntod(number);
returndate;
}
dateoperator-(int days)//返回一日期减去天数得到的日期
{
date date;
intnumber=dton(*this);
number-=days;
date=ntod(number);
returndate;
}
intoperator-(date &b)//返回两日期相差的天数
{
int days=dton(*this)-dton(b)-1;
return days;
}
voiddisp()
{
cout<<year<<"/"<<month<<"/"<<day<<endl;
}
};
int date::leap(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;//是闰年
else
return 0;//不是闰年
}
int date::dton(date &d)//将制定的日期转换为从0年0月0日起的天数
{
inty,m,days=0;
for(y=1;y<=d.year;y++)
if(leap(d.year))
days+=366;
else
days+=365;
for(m=0;m<=d.month-1;m++)
if(leap(d.year))
days+=day_tab[1][m];
else
days+=day_tab[0][m];
days=d.day;
return days;
}
date date::ntod(int n)//将制0年0月0日起的天数转换为对应的日期
{
inty=1,m=1,d,rest=n,lp;
while(1)
{
if(leap(y))
{
if(rest<=366)
break;
else
rest-=366;
}
else
{
if(rest<=365)
break;
else
rest-=365;
}
y++;
}
y--;
lp=leap(y);
while(1)
{
if(lp)
{
if(rest>day_tab[1][m-1])
rest-=day_tab[1][m-1];
else
break;
}
else
{
if(rest>day_tab[0][m-1])
rest-=day_tab[0][m-1];
else
break;
}
m++;
}
d=rest;
return date(y,m,d);
}
void main()
{
datenow(2010,10,1),then(2009,10,1);
cout<<"now:";now.disp();
cout<<"then:";then.disp();
cout<<"相差天数:"<<(then-now)<<endl;
date d1=now+100,d2=now-100;
cout<<"now+100:";d1.disp();
cout<<"now-100:";d2.disp();
}
- 日期类的应用
- 运算符重载的应用:日期类
- Java日期的应用
- 两个日期之间的日期应用案例
- mysql时间日期的应用
- excel日期函数的应用
- String.Format日期的应用
- java日期的一些应用
- java日期类,日历类的简单应用
- 日期类的创建和一些基本应用。
- java中的日期类应用
- JAVA的日期应用:Date、DateFormat、Calendar
- JAVA的日期应用:Date、DateFormat、Calendar
- JAVA的日期应用:Date、DateFormat、Calendar
- 分隔符的应用【日期处理问题】
- oracle日期函数的各种应用
- JAVA的日期应用:Date、DateFormat、Calendar
- iOS中时间日期的基本应用
- Oracle 9iR2 64bit on RHEL4 x86-64安装技术文档(原版英文)
- form中post和get传递中文
- 配置nutch软件
- C语言设计之 工资统计
- 月老啊
- 日期类的应用
- the end ,and the beginning
- Java NIO聊天窗口实例
- 基类
- Rails宝典之第八式: layout与content_for
- EFFECTIVE JAVA 笔记
- C语言设计之 学生信息管理系统
- hdoj 1330
- Asp.net MVC3 关于@Html中ListBox、DropDownList使用