我正在编写一个小的控制台程序来计算您的年龄,稍后我将添加一些其他内容,但是问题是此代码无法正确计算年龄,它只是减去了实际年份-出生年份,但是如果您没有您的生日过了,但显示的年龄有误,我该如何在所有的日子和月份中计算这笔款项?我尝试了很多事情,但是没有用:(
是否可以使用if语句来做到这一点?
using System;
using System.Collections.Generic;
using System.Text;
namespace para_joel
{
public class Person
{
public string name;
public string surname;
public int birthDay;
public int birthMonth;
public int birthYear;
public int Age()
{
int actualYear = DateTime.Now.Year;
int actualMonth = DateTime.Now.Month;
int actualDay = DateTime.Now.Day;
return actualYear - birthYear;
}
}
}
答案 0 :(得分:-1)
您需要使用以下方式将Person的三个int属性转换为Datetime:
DateTime birthday = new DateTime(birthYear, birthMonth, birthDay);
然后,您需要将今天的日期转换为日期时间(不是我会怎么做,而是使用变量):
DateTime today = new DateTime(actualYear, actualMonth, actualDay);
然后您需要减去两个:
var age = today - birthday;
这将返回几天,因此,您需要除以365以得出年限,一旦达到这一水平,就可以根据需要进行舍入。