[DebuggerDisplay("{" + nameof(DebuggerDisplay) + "(),根据出生年月计算天数/计算岁月天}")]
public class TimeTool
{
public TimeTool()
{
//构造
}
/// <summary>
/// 根据出生年月计算 整数天
/// </summary>
/// <param name="birthdate"></param>
/// <returns></returns>
private static int GetAgeByBirthdate(DateTime birthdate)
{
DateTime now = DateTime.Now;
int age = now.Year - birthdate.Year;
int v = age < 0 ? 0 : age;
if (now.Month >= birthdate.Month && (now.Month != birthdate.Month || now.Day >= birthdate.Day))
{
return v;
}
return v;
}
/// <summary>
/// 根据出生年月计算 X岁或X月X天或X天
/// </summary>
/// <param name="birthday"></param>
/// <returns></returns>
public static string GetAgeByBirthday(DateTime birthday)
{
DateTime currenttime = DateTime.Now;
TimeSpan diffTime = currenttime - birthday;
if (diffTime.TotalDays < 365)
{
//个月计算
int diffmonth = currenttime.Month - birthday.Month;
int day = currenttime.Day - birthday.Day;
if (day < 0)
{
var v = diffmonth--;
_ = v;
}
if (diffmonth <= 0)
{
//直接计算天
return $"{(int)diffTime.TotalDays}天";
}
else
{
DateTime newbirthday = birthday.AddMonths(diffmonth);
day = (int)(currenttime - newbirthday).TotalDays;
return $"{diffmonth}个月{(day == 0 ? "" : day.ToString() + "天")}";
}
}
else
{
//年龄计算
return $"{GetAgeByBirthdate(birthday)}岁";
}
}
private string DebuggerDisplay => ToString();
}
C# 根据出生年月计算年龄精确到岁月天
最新推荐文章于 2021-09-17 12:41:02 发布