計算年份year中第yearday天相應的月和日。
阿新 • • 發佈:2018-12-15
/********** 計算年份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; inti; 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; //計算月份 } } }