最近整理了一个判断日期合法性的函数,比较简洁,供大家参考,欢迎批评指正。
- char Cheack_date(short w_year,char w_month,char w_date)
- {
- unsigned char Month_buf[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
-
- if (w_month==2)
- (((w_year%4==0)&&(w_year%100!=0))||(w_year%400==0))?Month_buf[1]+=1:Month_buf[1];
-
- if (w_month>12||w_month<1||w_date>Month_buf[w_month-1]||w_date<1)
- return 0;
-
- return 1;
- }
复制代码
下面是一个小测试;
- 2000-2-29
- 该日期合法!
- 1900-2-29
- 该日期非法!
- 2019-6-15
- 该日期合法!
- 2019-13-15
- 该日期非法!
- 2019-6-0
- 该日期非法!
- 2019-0-5
- 该日期非法!
- 2019-6-31
- 该日期非法!
- 2019-7-31
- 该日期合法!
复制代码
|