|
#include<stdio.h>
/*********************************************/
/* 计算2000~2099年任一天星期几 */
/* year : 00-99 */
/* month: 01-12 */
/* day : 01-31 */
/*********************************************/
unsigned char GetWeekFromDay(unsigned char year,unsigned char month,unsigned char day)
{
if( month == 1 || month == 2 )
{
month += 12;
if( year> 0 )
year--;
else
year = 4;
}
// 返回星期几(星期一用1表示,而星期天用7表示)
return 1+(( day + 2*month + 3*(month+1)/5 + year + year/4 ) %7);
}
int main(void)
{
printf("Input Year month day :);
unsigned char num_week,num_year,num_month,num_day;
scanf("%d%d%d",&num_year,&num_month,&num_day);
num_week = GetWeekFromDay(num_year,num_month,num_day);
printf("%d\n",&num_week);
return 0;
}
在Linux下gcc编译输出的不是我要的答案啊,
声明计算星期的函数没有问题的。。
难道是gcc 不支持unsigned char,,
我输出的结果是
![](http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_601381LGTH3P.jpg)
(原文件名:week.jpg)
最后一个数字应该是0~6才对的啊,表示星期日到星期六
望高手,解释下, |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|