您的位置:首页 > 编程语言 > C#

C#实现计算年龄的简单方法汇总

2015-05-18 08:58 746 查看

vs2010测试通过,主要思想是由出生日期和当前日期,两个日期计算出年龄(岁、月、天)

using System;
using System.Collections.Generic;
using System.Text;
namespace PublicClass
{
public static class CalculationDate
{
/// <summary>
/// 由两个日期计算出年龄(岁、月、天)
/// </summary>
public static void calculationDate(DateTime beginDateTime, DateTime endDateTime)
{
if (beginDateTime > endDateTime)
throw new Exception("开始时间应小于或等与结束时间!");
/*计算出生日期到当前日期总月数*/
int Months = endDateTime.Month - beginDateTime.Month + 12 * (endDateTime.Year - beginDateTime.Year);
/*出生日期加总月数后,如果大于当前日期则减一个月*/
int totalMonth = (beginDateTime.AddMonths(Months) > endDateTime) ? Months - 1 : Months;
/*计算整年*/
int fullYear = totalMonth / 12;
/*计算整月*/
int fullMonth = totalMonth % 12;
/*计算天数*/
DateTime changeDate = beginDateTime.AddMonths(totalMonth);
double days = (endDateTime - changeDate).TotalDays;
}
}
}

再简单一些:

public int CalculateAgeCorrect(DateTime birthDate, DateTime now)
{
int age = now.Year - birthDate.Year;
if (now.Month < birthDate.Month || (now.Month == birthDate.Month && now.Day < birthDate.Day)) age--;
return age;
}

下面我们来看看常规方法:

方法1:

string m_Str = "1984-04-04";
int m_Y1 = DateTime.Parse(m_Str).Year;
int m_Y2 = DateTime.Now.Year;
int m_Age = m_Y2 - m_Y1;
Response.Write(m_Age);

方法2:

      如果你将日期格式化为yyyymmdd,并且从当前日子减去生日,最后去除4个数字,就得到年龄了:)
      我相信这样的方法可以用任何语言实现:

     20080814-19800703=280111

     去除最后4位 = 28.

int now =int.Parse(DateTime.Today.ToString("yyyyMMdd"));
int dob =int.Parse(dateDOB.ToString("yyyyMMdd"));
string dif =(now - dob).ToString();
string age ="0";
if(dif.Length>4)
age = dif.Substring(0, dif.Length-4);


方法3:

DateTime now =DateTime.Today;
int age = now.Year- bday.Year;
if(bday > now.AddYears(-age)) age--;

以上所述就是本文的全部内容了,希望能对大家学习C#有所帮助。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# 计算年龄