http://news.ccidnet.com/art/32855/20100714/2115591_1.html可以看看这个
int md[2][13]={//闰年和不是闰年时整年的天数和每月的天数
{365,31,28,31,30,31,30,31,31,30,31,30,31},
{366,31,29,31,30,31,30,31,31,30,31,30,31}
};
int isleap(int year){//判断是否为闰年
return (year%400==0||(year%4==0&&year%100!=0))?1:0;
}
int month_day(int year, int yearday, int *pmonth, int *pday){
int leap=isleap(year);
if(yearday>md[leap][0]) return 0;
*pmonth=1,*pday=0;
while(md[leap][*pmonth]<=yearday){
yearday-=md[leap][*pmonth];
(*pmonth)++;
}
*pday=yearday;
return 1;
}