почему при вычитании двух дат типа DateTime получается значение типа TimeSpan, и как мне получить отсюда результат типа DateTime?
public int Age()
{
return (DateTime.Now - BirthDate)
}
Разницу между датами нельзя перевести в года, т.к. в каждом календарном году свое количество дней. Т.е. разница в 365 дней может быть как полным годом, так и неполным, в зависимости от даты отсчета. Так что придется сравнивать года и даты вручную:
public static int GetAge(DateTime birthDate)
{
var now = DateTime.Now;
return now.Year - birthDate.Year - 1 +
((now.Month > birthDate.Month || now.Month == birthDate.Month && now.Day >= birthDate.Day) ? 1 : 0);
}
Более красивое решение от Mike Polen:
DateTime now = DateTime.Today;
int age = now.Year - bday.Year;
if (bday > now.AddYears(-age)) age--;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости