int delta_day(int startYear,int startMonth,int startDay,int endYear,int endMonth,int endDay) { long deltadate,year, day1, day2; if ( startYear < endYear ) { deltadate = count_day ( startYear, startMonth, startDay , 0 ); for (year=startYear+1;year<endYear; year++ )//年份累加 if (leap(year))//遇到闰年 deltadate += 366; else //平年 deltadate += 365; deltadate += count_day (endYear, endMonth, endDay, 1); } //同一年的时间判断 else if ( startYear == endYear ) { day1 = count_day ( startYear, startMonth, startDay, 1 ); day2 = count_day ( endYear, endMonth, endDay, 1 ); deltadate = day2-day1;//多的被减出来了 } else deltadate = -1; //标识 return deltadate; }
//返回指定年月的的1号是周几 //已知1970年1月1日为周四,6月1日为周一 int week_day(int year, int month){ int week_map[] = {3,4,5,6,7,1,2}; int days = 1; int i,w; for (i=1970; i<year; i++) {//求年的天数 if(is_run(i)) days+=366; else days+=365; } days+=count_day(year,1,month); return week_map[days%7]; }