//定义函数计算输入日期距离2006-1-1的总天数
//定义两个变量用来存储年份,月份相差的天数
//如果是闰年,年份天数加上366不是加365
int getDays(int y, int m, int d)
{
int yearDays = 0, monthDays = 0;
for (int i = 2006; i < y; i++) {
if (runYear(i))
yearDays += 366;
else
yearDays += 365;
}
//计算输入月份与1月1日之间相差的天数
//如果是闰年,就累加闰年所对应月份的天数
//如果不是闰年,就累加非闰年所对应月份的天数
for (int j = 1; j < m; j++) {
if (runYear(y))
monthDays += pingYearM[j-1];
else
monthDays += runYearM[j-1];
}
//计算总天数并返回
int allDays = yearDays + monthDays +d;
return allDays;
}
/* 新建一个函数用来判断是否是闰年
1)非整百年能被4整除的为闰年
2)整百年能被400整除的是闰年
*/
//如果是闰年,返回1,否则返回0
int runYear(int y)
{
if ( (y%4==0 && y%100!=0) || (y%400==0) )
return 1;
else
return 0;
}
//新建一个函数用来判断输入的日期是否合理,不合理返回1,合理返回0
//如果年份小于2006、或月份小于1、或月份大于12、或日小于1,则日期不合理
//如果是闰年
//当天数大于当月所对应的最大天数,则不合理
int jieShouData(int y, int m, int d)
{
if (y<2006 || m<1 || m>12 || d<1)
return 1;
if (runYear(y))
return d > runYearM[m-1];
else
return d > pingYearM[m-1];
}作者: 小北北 时间: 2015-11-6 08:34
写的不错哦作者: 活到老,学到老 时间: 2015-11-6 09:38