C++用友元函数求日期相差天数
定义一个日期类Date,包含日期的年、月、日三个数据成员,编写一个友元函数,求两个日期间相差的天数。...
定义一个日期类Date,包含日期的年、月、日三个数据成员,编写一个友元函数,求两个日期间相差的天数。
展开
3个回答
2013-10-11
展开全部
#include<iostream>
#include<cmath>
using namespace std;
class Date
{
public:
int y;
int m;
int d;
void getdate();
friend long compare(Date &m1,Date &m2);
};void Date::getdate()
{
cout<<"请输入的 年、月、日:"<<endl;
cin>>y>>m>>d;
}long compare(Date &m1,Date &m2)
{
long days1,days2;
if(m1.y%400==0||(m1.y%100!=0&&m1.y%4==0))
days1=m1.y*366+m1.m*30+m1.d; //具体不同月有多少天不想判断了 同样思维 你自己写
else
days1=m1.y*365+m1.m*30+m1.d;
if(m2.y%400==0||(m2.y%100!=0&&m2.y%4==0))
days2=m2.y*366+m1.m*30+m2.d; //具体不同月有多少天不想判断了 同样思维 你自己写
else
days2=m2.y*365+m2.m*30+m2.d;
return abs(days1-days2);
}void main()
{
int day;
Date mm1,mm2;
cout<<"第一个日期"<<endl;
mm1.getdate();
cout<<"第二个日期"<<endl;
mm2.getdate();
cout<<"相差"<<compare(mm1,mm2);<<"天."<<endl;
}
#include<cmath>
using namespace std;
class Date
{
public:
int y;
int m;
int d;
void getdate();
friend long compare(Date &m1,Date &m2);
};void Date::getdate()
{
cout<<"请输入的 年、月、日:"<<endl;
cin>>y>>m>>d;
}long compare(Date &m1,Date &m2)
{
long days1,days2;
if(m1.y%400==0||(m1.y%100!=0&&m1.y%4==0))
days1=m1.y*366+m1.m*30+m1.d; //具体不同月有多少天不想判断了 同样思维 你自己写
else
days1=m1.y*365+m1.m*30+m1.d;
if(m2.y%400==0||(m2.y%100!=0&&m2.y%4==0))
days2=m2.y*366+m1.m*30+m2.d; //具体不同月有多少天不想判断了 同样思维 你自己写
else
days2=m2.y*365+m2.m*30+m2.d;
return abs(days1-days2);
}void main()
{
int day;
Date mm1,mm2;
cout<<"第一个日期"<<endl;
mm1.getdate();
cout<<"第二个日期"<<endl;
mm2.getdate();
cout<<"相差"<<compare(mm1,mm2);<<"天."<<endl;
}
2013-10-11
展开全部
请写详细点,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-11
展开全部
用TimeSpan
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询