C#實(shí)現(xiàn)計(jì)算年齡的簡(jiǎn)單方法匯總
vs2010測(cè)試通過(guò),主要思想是由出生日期和當(dāng)前日期,兩個(gè)日期計(jì)算出年齡(歲、月、天)
using System; using System.Collections.Generic; using System.Text; namespace PublicClass { public static class CalculationDate { /// <summary> /// 由兩個(gè)日期計(jì)算出年齡(歲、月、天) /// </summary> public static void calculationDate(DateTime beginDateTime, DateTime endDateTime) { if (beginDateTime > endDateTime) throw new Exception("開(kāi)始時(shí)間應(yīng)小于或等與結(jié)束時(shí)間!"); /*計(jì)算出生日期到當(dāng)前日期總月數(shù)*/ int Months = endDateTime.Month - beginDateTime.Month + 12 * (endDateTime.Year - beginDateTime.Year); /*出生日期加總月數(shù)后,如果大于當(dāng)前日期則減一個(gè)月*/ int totalMonth = (beginDateTime.AddMonths(Months) > endDateTime) ? Months - 1 : Months; /*計(jì)算整年*/ int fullYear = totalMonth / 12; /*計(jì)算整月*/ int fullMonth = totalMonth % 12; /*計(jì)算天數(shù)*/ DateTime changeDate = beginDateTime.AddMonths(totalMonth); double days = (endDateTime - changeDate).TotalDays; } } }
再簡(jiǎn)單一些:
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; }
下面我們來(lái)看看常規(guī)方法:
方法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,并且從當(dāng)前日子減去生日,最后去除4個(gè)數(shù)字,就得到年齡了:)
我相信這樣的方法可以用任何語(yǔ)言實(shí)現(xiàn):
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--;
以上所述就是本文的全部?jī)?nèi)容了,希望能對(duì)大家學(xué)習(xí)C#有所幫助。
- C#求n個(gè)數(shù)中最大值和最小值的方法
- c#求兩個(gè)數(shù)中最大值的方法
- C#獲取數(shù)組中最大最小值的方法
- c#獲取數(shù)組中最大數(shù)的值
- C#基于面向過(guò)程計(jì)算加權(quán)平均分的方法
- C#使用linq計(jì)算執(zhí)行元素在列表中出現(xiàn)次數(shù)的方法
- C#中計(jì)算時(shí)間差中的小數(shù)問(wèn)題解決
- C#計(jì)算器編寫代碼
- C#實(shí)現(xiàn)Winform版計(jì)算器
- C#計(jì)算矩陣的逆矩陣方法實(shí)例分析
- C#實(shí)現(xiàn)輸入10個(gè)數(shù)存入到數(shù)組中并求max和min及平均數(shù)的方法示例
相關(guān)文章
C#畢業(yè)設(shè)計(jì)之Winform零壓健身房管理系統(tǒng)
本文介紹了個(gè)人的《零壓健身房管理系統(tǒng)(扁平化)》的基本流程和功能點(diǎn)的介紹,虛心接受各位的意見(jiàn),歡迎在提出寶貴的意見(jiàn),大家一起探討學(xué)習(xí)2021-09-09C#實(shí)現(xiàn)獲取文件大小并進(jìn)行比較
這篇文章主要為大家詳細(xì)介紹了C#如何實(shí)現(xiàn)獲取文件大小進(jìn)行單位轉(zhuǎn)換與文件大小比較功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-03-03c#異步操作后臺(tái)運(yùn)行(backgroundworker類)示例
這篇文章主要介紹了c#異步操作后臺(tái)運(yùn)行(backgroundworker類)示例,需要的朋友可以參考下2014-04-04