C# 精确年龄计算

C# 精确年龄计算,c#,C#,可能重复: 也许这可能很愚蠢,但我对自己的年龄没有问题,但有时计算某人的确切年龄是好的,我在我的个人资料(1975年12月1日)“dd/mm/yyyy”中介绍了我的出生日期,它计算了33岁,而我实际上仍然32岁,计算确切年龄不是更好吗 也许吧 年度结果为32.77405678074 这个代码行吗 也许这可能很愚蠢,但我对自己的年龄没有问题,但有时计算某人的确切年龄是好的,我在个人资料(1975年12月1日)“dd/mm/yyyy”中介绍了我的出生日期,它计算了33岁,而我实际上仍然32岁,计算

可能重复:

也许这可能很愚蠢,但我对自己的年龄没有问题,但有时计算某人的确切年龄是好的,我在我的个人资料(1975年12月1日)“dd/mm/yyyy”中介绍了我的出生日期,它计算了33岁,而我实际上仍然32岁,计算确切年龄不是更好吗

也许吧

年度结果为32.77405678074

这个代码行吗

也许这可能很愚蠢,但我对自己的年龄没有问题,但有时计算某人的确切年龄是好的,我在个人资料(1975年12月1日)“dd/mm/yyyy”中介绍了我的出生日期,它计算了33岁,而我实际上仍然32岁,计算确切年龄不是更好吗

我的猜测是,这是一个本地化问题,尽管我不知道这将如何发生,因为(至少对我来说)个人资料让你以“YYYY/MM/DD”的格式填写你的年龄。但是你的生日在传统的美国环境中是一个有效的日期(1月12日),所以这是我要研究的领域。我也是1975年出生的,我的生日是下个月,我的年龄正好

也许这可能很愚蠢,但我对自己的年龄没有问题,但有时计算某人的确切年龄是好的,我在个人资料(1975年12月1日)“dd/mm/yyyy”中介绍了我的出生日期,它计算了33岁,而我实际上仍然32岁,计算确切年龄不是更好吗


我的猜测是,这是一个本地化问题,尽管我不知道这将如何发生,因为(至少对我来说)个人资料让你以“YYYY/MM/DD”的格式填写你的年龄。但是你的生日在传统的美国环境中是一个有效的日期(1月12日),所以这是我要研究的领域。我也是1975年出生的,我的生日是下个月,我的年龄正好。

事实上,由于闰年的原因,你的代码会被关闭。由于timespan对象没有TotalYears属性,因此获取它的最佳方法是

请原谅VB.Net

Dim myAge AS Integer = DateTime.Now.year - BirthDate.year
If Birthdate.month < DateTime.Now.Month _
OrElse BirthDate.Month = DateTime.Now.Month AndAlso Birthdate.Day < DateTime.Now.Day Then
MyAge -= 1
END IF
Dim myAge AS Integer=DateTime.Now.year-BirthDate.year
如果Birthdate.month
事实上,由于闰年的原因,您的代码将被关闭。由于timespan对象没有TotalYears属性,因此获取它的最佳方法是

请原谅VB.Net

Dim myAge AS Integer = DateTime.Now.year - BirthDate.year
If Birthdate.month < DateTime.Now.Month _
OrElse BirthDate.Month = DateTime.Now.Month AndAlso Birthdate.Day < DateTime.Now.Day Then
MyAge -= 1
END IF
Dim myAge AS Integer=DateTime.Now.year-BirthDate.year
如果Birthdate.month
如果你出生于1975年1月12日,你今天就33岁了

如果你出生于1975年12月1日,你今天就32岁了


如果您在编辑个人资料时阅读“生日”字段的注释,您会看到它显示“YYYY/MM/DD”,我确信它会尝试解释其他格式的日期,但它看起来更倾向于解释MM/DD/YYYY(美国标准日期),而不是DD/MM/YYYY(欧洲标准日期)。最简单的方法是根据建议的输入方式输入生日。

如果你出生于1975年1月12日,你今天就33岁了

int ag1;
string st, ag;
void agecal()
{
    st = TextBox4.Text;
    DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
    dtfi.ShortDatePattern = "MM/dd/yyyy";
    dtfi.DateSeparator = "/";
    DateTime dt = Convert.ToDateTime(st, dtfi);
    ag1 = int.Parse(dt.Year.ToString());
    int years = DateTime.Now.Year - ag1;
    ag = years.ToString();
    TextBox3.Text = ag.ToString();
}
如果你出生于1975年12月1日,你今天就32岁了

如果您在编辑个人资料时阅读“生日”字段的注释,您会看到它显示“YYYY/MM/DD”,我确信它会尝试解释其他格式的日期,但它看起来更倾向于解释MM/DD/YYYY(美国标准日期),而不是DD/MM/YYYY(欧洲标准日期)。简单的解决方法是根据建议的输入样式输入生日。

检查此项:检查此项:
int ag1;
string st, ag;
void agecal()
{
    st = TextBox4.Text;
    DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
    dtfi.ShortDatePattern = "MM/dd/yyyy";
    dtfi.DateSeparator = "/";
    DateTime dt = Convert.ToDateTime(st, dtfi);
    ag1 = int.Parse(dt.Year.ToString());
    int years = DateTime.Now.Year - ag1;
    ag = years.ToString();
    TextBox3.Text = ag.ToString();
}