C#判断日期是否正确(1900~今年,月份,天数)

年份:1900——今年

月份:大小月

天数:是否是闰月天数

 1 /// <summary>判断生日格式是否正确</summary>
 2             /// <returns></returns>
 3             public static bool CheckBirthDay(DateTime date)
 4             {
 5                 int[] bigMonth = { 1, 3, 5, 7, 8, 10, 12 };
 6                 int[] smallMonth = { 2, 4, 6, 9, 11 };
 7                 if (date.Year < 1900 || date.Year > DateTime.Now.Year) return false;
 8                 if (date.Month > 13 || date.Month < 1) return false;
 9                 if (date.Day < 1) return false;
10                 for (int i = 0; i < bigMonth.Length; i++)
11                 {
12                     if (date.Month == bigMonth[i])
13                         if (date.Day > 31) return false;
14                 }
15                 for (int i = 0; i < smallMonth.Length; i++)
16                 {
17                     if (date.Month == smallMonth[i])
18                         if (date.Day > 30) return false;
19                 }
20                 if (date.Month == 2)
21                 {
22                     if (IsLeap(date.Year))
23                     {
24                         if (date.Day > 29) return false;
25                     }
26                     else
27                         if (date.Day > 28) return false;
28                 }
29                 return true;
30             }
31 
32             /// <summary>判断是否为闰年,四年一闰,百年不闰,四百年再闰</summary>
33             /// <param name="yN"></param>
34             /// <returns></returns>
35             public static bool IsLeap(int yN)
36             {
37                 if ((yN % 400 == 0 && yN % 3200 != 0)
38                    || (yN % 4 == 0 && yN % 100 != 0)
39                    || (yN % 3200 == 0 && yN % 172800 == 0))
40                     return true;
41                 else
42                     return false;
43             }

转载于:https://www.cnblogs.com/EleMMent/archive/2012/12/28/2837189.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值