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#有所幫助。
新聞熱點
疑難解答