最近写的
为了培养自己良好的代码风格~~~
/**
* 标题: Date to Date
* 描述: 返回任意两个日期之间的天数总计
* 作者: hjc
* 版本: 1.1
* 时间: 2005.09.23
*/
//========================================
//file head
//========================================
#include <stdio.h>
//========================================
//function declare
//========================================
int DaysToElapse (int $year, int $month, int $day);
int DaysToSurplus (int $year, int $month, int $day);
int DaysToYearTotal (int $year_outset, int $year_finish);
int LeapYearToCheckUp (int $year);
//========================================
//main
//========================================
int main ()
{
int date_outset[3];
int date_finish[3];
printf("Please input outset date, for example: 2004/6/10\n");
printf("=");
scanf ("%d/%d/%d",
&date_outset[0],
&date_outset[1],
&date_outset[2]);
printf("\nPlease input finish date, form ditto...\n");
printf("=");
scanf ("%d/%d/%d",
&date_finish[0],
&date_finish[1],
&date_finish[2]);
int day_elapse = DaysToSurplus (
date_outset[0],
date_outset[1],
date_outset[2]
);
int day_surplus = DaysToElapse (
date_finish[0],
date_finish[1],
date_finish[2]
);
int total = 0;
if(date_outset[0] == date_finish[0])
{
total =
DaysToElapse (
date_finish[0],
date_finish[1],
date_finish[2])
-
DaysToElapse (
date_outset[0],
date_outset[1],
date_outset[2]);
}
else if(date_outset[0] < date_finish[0])
{
total = day_elapse + day_surplus;
total += DaysToYearTotal (date_outset[0], date_finish[0]);
}
printf("\nTotal %d days between %d/%d/%d and %d/%d/%d.\n\n\n",
total,
date_outset[0],date_outset[1],date_outset[2],
date_finish[0],date_finish[1],date_finish[2]);
printf("Please any key to exit...");
getch();
return 0;
}
//========================================
//function
//========================================
//检测是否为闰年
int LeapYearToCheckUp (int $year)
{
if($year%400==0 || ($year%4==0 && $year%100!=0))
{
return 1;
}
else
{
return 0;
}
}
//计算本年逝去天数
int DaysToElapse (int $year, int $month, int $day)
{
int i;
for (i=1; i<$month; i++)
{
if(i==2)
{
if(LeapYearToCheckUp ($year) == 1)
{
$day += 29;
}
else
{
$day += 28;
}
}
else if(i==4 || i==6 || i==9 || i==11)
{
$day+=30;
}
else
{
$day+=31;
}
}
return $day;
}
//计算本年剩余天数
int DaysToSurplus (int $year, int $month, int $day)
{
return
DaysToElapse ($year, 12, 31)
- DaysToElapse ($year, $month, $day);
}
//合计两年之间天数
int DaysToYearTotal (int $year_outset, int $year_finish)
{
int i,$temp = 0;
for (i=$year_outset+1; i<$year_finish; i++)
{
$temp += DaysToElapse (i, 12, 31);
}
return $temp;
}