源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-09-03 19:52 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#实现计算年龄的简单方法汇总
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#有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部