共有回帖数 0 个
-
#include stdio.h
char D[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char W[][3] = {"日", "一", "二", "三", "四", "五", "六"};
char M[] = {0, 0, 4, 4, 1, 6, 3, 1, 5, 2, 0, 4, 2};
char Y[] = {
5, 6, 0, 1, 3, 4, 5,
6, 1, 2, 3, 4, 6, 0,
1, 2, 4, 5, 6, 0, 2,
3, 4, 5, 0, 1, 2, 3
};
#define month(m) ((m) 0 && (m) 13)
#define leap(y) (!((y)%4)&&((y)%100)||!((y)%400))
#define day(y, m, d) (D[(m)] + ((m) == 2 && leap(y)))
#define date(y, m, d) (month(m) && 0 d && d = day(y,m,d))
#define year(y) ((y) 0? (28-(-(y))%28)%28: (y) % 28)
#define week(y, m, d) ((Y[year(y)]-M[(m)]-(leap(y)&&(m)3)+(d)%7+7)%7)
int main(void)
{
int y, m, d;
printf("输入年月日,判断星期:");
while (scanf("%d%d%d", &y, &m, &d) && !date(y, m, d))
printf("输入的日期有误,重新输入:");
printf("%d年%02d月%02d日是星期%sn", y, m, d, W[week(y, m, d)]);
return 0;
}
楼主 2016-01-23 11:19 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知