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

作者:hebedich 时间:2022-12-26 01:12:41 

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#,计算年龄
0
投稿

猜你喜欢

  • sms4j 2.0 全新来袭功能的调整及maven变化详解

    2023-11-05 00:31:51
  • Java实战之在线租房系统的实现

    2022-09-29 04:44:18
  • Java Runnable和Thread实现多线程哪个更好你知道吗

    2021-08-17 05:48:50
  • Spring及Mybatis整合占位符解析失败问题解决

    2022-08-13 06:42:49
  • IntelliJ IDEA安装目录和设置目录的说明(IntelliJ IDEA快速入门)

    2021-08-16 21:17:08
  • Spring Boot2如何构建可部署的war包

    2023-11-29 06:40:59
  • C#利用System.Uri转URL为绝对地址的方法

    2021-06-04 13:41:40
  • java String的intern方法

    2021-07-05 03:23:52
  • RecyclerView实现纵向和横向滚动

    2023-04-03 14:50:44
  • Android实现层叠卡片式banner

    2023-03-04 03:57:08
  • 深入理解Java中的弱引用

    2023-07-19 20:14:53
  • 列举java语言中反射的常用方法及实例代码

    2022-10-31 13:45:07
  • spring boot项目快速构建的全步骤

    2023-11-16 21:16:38
  • Java编程实现中英混合字符串数组按首字母排序的方法

    2022-03-16 02:34:54
  • Java spring 通过注解方式创建对象的示例详解

    2023-07-03 01:18:05
  • SpringMVC用JsonSerialize日期转换方法

    2021-12-06 10:59:59
  • Android编程实现自定义系统菜单背景的方法

    2023-07-16 22:02:51
  • Java中高效的判断数组中某个元素是否存在详解

    2021-05-25 17:32:08
  • Android使用CountDownTimer模拟短信验证倒计时

    2022-10-24 18:00:28
  • mybatis foreach遍历LIST读到数据为null的问题

    2021-05-24 20:15:27
  • asp之家 软件编程 m.aspxhome.com