- 论坛徽章:
- 0
|
求:C语言计算天数的函数
哈哈~~~~~大家就都会说, 都懒的很啊
本大虾刚学C++不久, 帮你写了一个
include <iostream>;
using namespace std;
bool isleap(int y);
bool is_correct_date(int d, int m, int y);
void swap(int& a,int& b);
int main()
{
int d,m,y, d1,m1,y1, day=0;
cout<<"Enter one date(day,month,year): ";
cin>;>;d>;>;m>;>;y;
cout<<"Enter another date(day,month,year): ";
cin>;>;d1>;>;m1>;>;y1;
if(!is_correct_date(d,m,y)||!is_correct_date(d1,m1,y1))
cout<<"Error Date Exist!"<<endl;
else
{
if(y1<y || (y1==y&&m1<m) || (y1==y&&m1==m&&d1<d))
{
swap(y1, y);
swap(m1, m);
swap(d1, d);
}
while(y!=y1 || m!=m1 || d!=d1)
{
d++;
day++;
if((m==1||m==3||m==5||m==7||m==8||m==10)&&d==32)
{ m++;
d=1;
}
else if((m==4||m==6||m==9||m==11)&&d==31)
{ m++;
d=1;
}
else if(m==12&&d==32)
{ y++;
m=1;
d=1;
}
else if(m==2 && isleap(y) && d==30)
{ m++;
d=1;
}
else if(m==2 && !isleap(y) && d==29)
{ m++;
d=1;
}
}
cout<<"between the two data there are "<<day<<" days."<<endl;
}
}
bool isleap(int y)
{ return y%4==0&&y%100!=0 || y%400==0;
}
bool is_correct_date(int d, int m, int y)
{
if(
(y<1||m<1||m>;12||d<1||d>;31) ||
((m==4||m==6||m==9||m==11)&&d>;30) ||
(m==2 && isleap(y) && d>;29) ||
(m==2 && !isleap(y) && d>;28 )
)
return false;
return true;
}
void swap(int& a,int& b)
{
int temp;
temp = a;
a = b;
b = temp;
} |
|