int date; /*date为0表示星期日,为1~6分别表示星期一至星期六*/ long days=0; /*days记录天数*/ int m, y, c=0; /*c用于表示黑色星期五的个数*/ if(year<1900) return-1; /*计算从1900年1月1日起,至给定年份year的1月13日间隔的天数*/ days=12; for(y=1900; y<year; y++) days +=365; if (iSLeapYear(Y)) (1) ;
date=((days%7)+1)%7; /*算出给定年份year的1月13日是星期几+/ c=( (2) )?1:0; for(m=1; (3) ; m++) switch(m) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; break; case 4: case 6: case 9: case 11: days=30; break; case 2: days=28; if( (4) )days=29; break; /*end of switch*/ date=((days%7)+ (5) )%7; if (date==5) c++; /*end of for*/ return c;