C语言输入日期,输出星期几,两种方法

方法一:
int const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正数据表
/*
*输入日期,得到星期几
*输入:year:  年
*      month: 月
*      day:   日
*返回:星期几
*0      1      2      3     4       5     6
*七     一    二     三     四     五     六
*/
int get_Week(int year,int month,int day)
{
  int temp2;
	int yearH,yearL;

  yearH = year/100;
  yearL = year%100;
  if(yearH > 19)
  {
   yearL += 100;
  }
  temp2 = yearL+yearL/4;
  temp2 = temp2%7;
  temp2 = temp2+day+table_week[month-1];

  if(yearL%4 == 0 && month < 3)
  {
   temp2--;
  }
  return temp2%7;

}
方法二:
/*
*输入日期,得到星期几
*输入:y:年
*      m:月
*      d:日
*返回:星期几
*0      1      2      3     4       5     6
*一    二     三     四     五     六     七
*/
int get_Week(int y,int m,int d)
{
  int week = 0;
  if(m==1 || m == 2)
  {
    m += 12;
    y--;
  }
  week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
  return week;
}

 

你可能感兴趣的:(C语言输入日期,输出星期几,两种方法)