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

 更新时间:2015年05月18日 08:58:23   投稿:hebedich  
本文给大家分享的是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#有所帮助。

相关文章

  • C#条件编译、内联函数、CLS介绍

    C#条件编译、内联函数、CLS介绍

    这篇文章介绍了C#的条件编译、内联函数、CLS,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#中将ListView中数据导出到Excel的实例方法

    C#中将ListView中数据导出到Excel的实例方法

    首先 你需要添加引用Microsoft Excel 11.0 Object Library
    2013-04-04
  • 使用c#实现随机数猜数游戏的示例代码

    使用c#实现随机数猜数游戏的示例代码

    这篇文章主要介绍了使用c#实现随机数猜数游戏的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • c# 抓取Web网页数据分析

    c# 抓取Web网页数据分析

    通过程序自动的读取其它网站网页显示的信息,类似于爬虫程序。比方说我们有一个系统,要提取BaiDu网站上歌曲搜索排名。分析系统在根据得到的数据进行数据分析。为业务提供参考数据。
    2008-11-11
  • C#导出数据到excel如何提升性能

    C#导出数据到excel如何提升性能

    这篇文章主要介绍了C#导出数据到excel如何提升性能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • C# webservice接口编写、发布与测试

    C# webservice接口编写、发布与测试

    这篇文章主要介绍了C# webservice接口编写、发布与测试,文章通过图文结合的方式给大家介绍的非常详细,对大家的学习或共组有一定的帮助,需要的朋友可以参考下
    2024-07-07
  • C#中使用ADOMD.NET查询多维数据集的实现方法

    C#中使用ADOMD.NET查询多维数据集的实现方法

    这篇文章主要介绍了C#中使用ADOMD.NET查询多维数据集的实现方法,详细讲述了C#中使用ADOMD.NET查询多维数据集的原理与实现技巧,需要的朋友可以参考下
    2014-10-10
  • C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法

    C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法

    这篇文章主要介绍了C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法,涉及WinForm改变窗口大小时动态判断当前窗口尺寸的相关技巧,非常简单实用,需要的朋友可以参考下
    2015-11-11
  • c# winform 关闭窗体时同时结束线程实现思路

    c# winform 关闭窗体时同时结束线程实现思路

    th.IsBackground = true解决线程问题,意思就是把线程设置为后台线程,感兴趣的朋友可以多了解下,如何有什么妙招还请多多指导哈
    2013-02-02
  • C#实现软件开机自启动的示例代码

    C#实现软件开机自启动的示例代码

    这篇文章主要为大家详细介绍了如何利用C#实现软件开机自启动,且不需要管理员权限,文中的示例代码讲解详细,需要的小伙伴可以参考一下
    2023-07-07

最新评论