1. 程式人生 > >計算年份year中第yearday天相應的月和日。

計算年份year中第yearday天相應的月和日。

 

/**********
計算年份year中第yearday天相應的月和日。
例如,呼叫函式month_day(2000,61,&m,&d)之後,m=3, d=1,即2000年的第61天是3月1日。 *********
*/ int month_day(int year, int yearday, int *pmonth, int *pday) /* year是年, yearday是天數, 若year和yearday合理, 則*pmonth和*pday是計算得出的月和日,函式返回1; 否則,函式返回0。 */ { int flag = 0; int
i; int date[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(year%4==0&&year%100!=0) flag = 1; if(year%400==0) flag = 1; //flag=1為閏年 if(flag==0) { if(yearday>365) { return 0;
break; } else { for(i=0;yearday>0;i++) { *pday=yearday; yearday-=date[i]; } *pmonth=i; return 1; //
計算月份 } } else { date[1]=29; if(yearday>366) { return 0; break; } else { for(i=0;yearday>0;i++) { *pday=yearday; yearday-=date[i]; } *pmonth=i; return 1; //計算月份 } } }