Пример #1
0
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;
}
Пример #2
0
//返回指定年月的的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];
}