/* file name: day.th.c
* cmd: $gcc day.th.c
* author: yilonglucky#gmail.com
* description: show how namy days passed in the year for a date
*/
#include <stdio.h>
static char daytab[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31},
};
//return 1 if leap year, 0 if not
int is_leap(int year)
{
return((year%4 == 0) && (year%100 != 0) || (year%400 == 0));
}
//return the number of the day, 0 if wrong
int day_of_year(int year, int month, int day)
{
char i = 1, leaf_flag = is_leap(year);
if(month < 1 || month >12)
return 0;
if(day < 1 || day > daytab[leaf_flag][month])
return 0;
for(i = 1; i < month; i++)
day += daytab[leaf_flag][i];
return day;
}
//calculate the order of some day in the year
int main()
{
#define YEAR 2014
#define MONTH 8
#define DAY 8
printf("%d.%d.%d is day #%d of the year %d.\n", YEAR,
MONTH, DAY, day_of_year(YEAR, MONTH, DAY), YEAR);
return 0;
}
【日期计算】某日期是该年第几天
最新推荐文章于 2022-12-13 11:29:00 发布