visual una studio solicitando persona nacimiento meses form edad dias calcular años año antiguedad c# asp.net-mvc date-arithmetic

c# - studio - ¿Cómo calcular una edad basada en un cumpleaños?



calcular edad visual studio c# (4)

Lo hago así:

(Acorté un poco el código)

public struct Age { public readonly int Years; public readonly int Months; public readonly int Days; } public Age( int y, int m, int d ) : this() { Years = y; Months = m; Days = d; } public static Age CalculateAge ( DateTime birthDate, DateTime anotherDate ) { if( startDate.Date > endDate.Date ) { throw new ArgumentException ("startDate cannot be higher then endDate", "startDate"); } int years = endDate.Year - startDate.Year; int months = 0; int days = 0; // Check if the last year, was a full year. if( endDate < startDate.AddYears (years) && years != 0 ) { years--; } // Calculate the number of months. startDate = startDate.AddYears (years); if( startDate.Year == endDate.Year ) { months = endDate.Month - startDate.Month; } else { months = ( 12 - startDate.Month ) + endDate.Month; } // Check if last month was a complete month. if( endDate < startDate.AddMonths (months) && months != 0 ) { months--; } // Calculate the number of days. startDate = startDate.AddMonths (months); days = ( endDate - startDate ).Days; return new Age (years, months, days); } // Implement Equals, GetHashCode, etc... as well // Overload equality and other operators, etc...

}

Posible duplicado:
¿Cómo calculo la edad de alguien en C #?

Quiero escribir un método de ayuda de ASP.NET que devuelva la edad de una persona en su cumpleaños.

He intentado código como este:

public static string Age(this HtmlHelper helper, DateTime birthday) { return (DateTime.Now - birthday); //?? }

Pero no está funcionando. ¿Cuál es la forma correcta de calcular la edad de la persona en función de su cumpleaños?


Otra forma inteligente de ese hilo antiguo :

int age = ( Int32.Parse(DateTime.Today.ToString("yyyyMMdd")) - Int32.Parse(birthday.ToString("yyyyMMdd"))) / 10000;


Realmente no entiendo por qué harías de esto un ayudante de HTML. Lo haría parte del diccionario ViewData en un método de acción del controlador. Algo como esto:

ViewData["Age"] = DateTime.Now.Year - birthday.Year;

Dado que el cumpleaños se pasa a un método de acción y es un objeto DateTime.


utiliza dicha función para determinar la edad de un usuario.

Calcular edad en C #

La respuesta dada es

DateTime now = DateTime.Today; int age = now.Year - bday.Year; if (now < bday.AddYears(age)) age--;

Por lo que su método de ayuda se vería como

public static string Age(this HtmlHelper helper, DateTime birthday) { DateTime now = DateTime.Today; int age = now.Year - birthday.Year; if (now < birthday.AddYears(age)) age--; return age.ToString(); }

Hoy, uso una versión diferente de esta función para incluir una fecha de referencia. Esto me permite tener la edad de alguien en una fecha futura o en el pasado. Esto se utiliza para nuestro sistema de reservas, donde se necesita la antigüedad en el futuro.

public static int GetAge(DateTime reference, DateTime birthday) { int age = reference.Year - birthday.Year; if (reference < birthday.AddYears(age)) age--; return age; }