欢迎来到贱贱的博客

扩大
缩小

宏的练习1 判断闰年等操作

1 直接上代码吧

 1 #include <stdio.h>
 2 
 3 //判定闰年
 4 #define ISLEAP(y) ((y)%4==0&&(y)%100!=0||(y)%400==0)
 5 //如果是小月则30 大月则21
 6 #define ISSMALL(m) ((m)==4||(m)==6||(m)==9||(m)==11)
 7 #define NORMAL(m) (ISSMALL(m)?30:31)
 8 //2月特殊处理
 9 #define DAYS(y,m) ((m)==2?28+ISLEAP(y):NORMAL(m))
10 //所判定得值是从起始到结束之间
11 #define IN(x,from,to) ((x)>=(from)&&(x)<=(to))
12 #define VALID(y,m,d) ((y)>1600&&IN(m,1,12)&&IN(d,1,DAYS(y,m)))
13 
14 /*
15     通过宏来算月份得天数
16     通过年月日判断是否如何规范(每个月得天数是否合法)
17 */
18 int main()
19 {
20     printf("%d,%d,%d\n",DAYS(2017,7),DAYS(2017,6),DAYS(2017,5));
21     printf("%d,%d\n",VALID(2015,2,29),VALID(2020,2,29));
22     return 0;
23 }

2 截图

3 感觉简洁好多呀 嘿嘿嘿嘿嘿

posted on 2017-07-28 16:59  L的存在  阅读(439)  评论(0编辑  收藏  举报

导航