赞
踩
我们经常要计算天数(两个日期之间相差几天),例如要算算春节放假几天,清明节可以休息几天。
输入:
起始日期的年,月,日
终止日期的年,月,日 (假设终止日期大于起始日期)
输出:
终止日期与起始日期之间的天数
- #include <stdio.h>
-
- int leap_year( int );
- int year_days( int );
- int days(int,int,int);
-
- int leap_year( int year ) // 判断闰年或平年
- { return ( (year%4==0 && year%100!=0) || year%400==0 ) ? 1 : 0;
- }
-
- int year_days(int year) // 计算一整年的天数
- { return leap_year( year ) ? 366 : 365;
- }
-
- int days( int year, int month, int day ) // 计算该天month,day 是本年year的第几天
- { int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}, i;
-
- if ( leap_year( year ) && month >2 )
- day++;
-
- for ( i=1; i<month; i++ )
- day += months[i];
-
- return day;
- }
- int main(){
- int y1,y2,m1,m2,d1,d2,c,y;
- scanf("%d%d%d%d%d%d",&y1,&m1,&d1,&y2,&m2,&d2);
- for(y=y1;y<y2;y++)
- c+=year_days(y);
- c = c - days( y1, m1, d1 ) + days( y2, m2, d2 );
- printf("%d days\n",c);
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。