因项目中的需要,年龄不是用户填写的,而是根据当天的时间(根据服务器的时间来,所以服务器的时间别弄错了)来计算他今天几岁了,是满了生日那天才算了一岁,也就是说出生到时候是0,如果需要变更,做少许修改就行。
函数如下:
- #region 计算年龄
- /// <summary>
- /// 计算年龄
- /// </summary>
- /// <param name="birthDay">出生日期</param>
- /// <returns></returns>
- public static int CaculateAge(string birthDay)
- {
- int iAge = 0;//初始化年龄数据
- if(birthDay != "")
- {
- DateTime dtBirthDay = DateTime.Parse(birthDay);
- DateTime dtNow = DateTime.Now;
- if(dtNow.Year > dtBirthDay.Year)//现在的年比出生年大
- {
- iAge += dtNow.Year - dtBirthDay.Year - 1;
- if(dtNow.Month > dtBirthDay.Month)//现在的月比出生月大
- {
- ++ iAge;
- }
- else if(dtNow.Month == dtBirthDay.Month)//现在的月与出生月一样
- {
- if(dtNow.Day >= dtBirthDay.Day)//现在的日比出生日大
- {
- ++ iAge;
- }
- }
- }
- }
- return iAge;
- }
- #endregion
参数是用的string,如果觉得不好,可以换做DataTime这样也行。这里没有做字符串不是日期格式的异常处理,需要的加上就OK了。