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("開始時(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# 獲取數(shù)據(jù)庫(kù)中所有表名稱的方法
在很多情況下我們需要將指定的數(shù)據(jù)庫(kù)中的所有表都列出來(lái)。在使用c#進(jìn)行軟件開發(fā)時(shí),我們有哪些方法可是實(shí)現(xiàn)這個(gè)目的呢?本人對(duì)此進(jìn)行概要的總結(jié),有以下6中方式可以實(shí)現(xiàn)這個(gè)目的。2010-02-02
C#基礎(chǔ)知識(shí)之字符串和正則表達(dá)式
目前為止許多編程語(yǔ)言和工具都包含對(duì)正則表達(dá)式的支持,C#也不例外,下面這篇文章主要給大家介紹了關(guān)于C#基礎(chǔ)知識(shí)之字符串和正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2022-10-10
C# 實(shí)現(xiàn)顏色漸變窗體控件詳細(xì)講解
這篇文章主要介紹了C# 實(shí)現(xiàn)顏色漸變窗體控件詳細(xì)講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
深入理解C#實(shí)現(xiàn)快捷鍵(系統(tǒng)熱鍵)響應(yīng)的方法
本篇文章是對(duì)使用C#實(shí)現(xiàn)快捷鍵(系統(tǒng)熱鍵)響應(yīng)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C#.net實(shí)現(xiàn)在Winform中從internet下載文件的方法
這篇文章主要介紹了C#.net實(shí)現(xiàn)在Winform中從internet下載文件的方法,實(shí)例分析了基于Winform實(shí)現(xiàn)文件下載的相關(guān)技巧,需要的朋友可以參考下2015-07-07

