本帖最后由 万事皆有可能 于 2015-12-17 11:19 编辑
#include <stdio.h>
/*
1970-1-1
2014-12-31
2015-1-1
2015-11-30
2015-12-1
2015-12-17
b1 > b2 表示b1比b2 早,返回1
< -1
= 0
int compareDate(Birthdate b)
{
}
//计算两个时间跨越的天数 0-1-1
int compareDate(Birthdate b1,Birthdate b2)
{
}
*/
typedef struct
{
int year;
int month;
int day;
}Date;
/*判断闰年*/
int isLeapYear( int year)
{
if( (year%4 == 0 && year%100 != 0) || (year % 400 == 0))
return 1;
else
return 0;
}
int computeDate(Date date)
{
//1. 累加整年的天数
int i;
int sum = 0;
int m1[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int m2[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
for(i=1970;i<date.year;i++)
{
if( isLeapYear(i) == 1 )
sum += 366;
else
sum += 365;
}
//2. 累加计算整月的天数1---->date.month-1
for(i=1;i<date.month;i++)
{
if(isLeapYear( date.year ) == 0)
sum += m1;
else
sum += m2;
}
//3.加 date.day
sum += date.day;
return sum;
}
int main()
{
/*
struct Date
{
int year;
int month;
int day;
};
typedef struct Date Birthdate;
*/
Date b1={1971,3,17},b2;
// b2 = {2008,10, 10};//error
int r = computeDate(b1);
printf("r = %d",r);
}
|