EDIT: ¡Woops! DateTime.TryParse no lanza una excepción internamente. ¡Estaba hablando por mis nalgas! De todos modos ...
DateTime.TryParse()
lanzará una excepción internamente y provocará un resultado idéntico al código en su pregunta. Si la velocidad es importante, tendrá que escribir su propio método.
Esto puede parecer más código, pero creo que va a ser más rápido si usted está esperando un gran volumen de errores:
public bool GetDate(int year, int month, int day, out DateTime dateTime)
{
if (month > 0 && month <= 12)
{
int daysInMonth = DateTime.DaysInMonth(year, month);
if (day <= daysInMonth)
{
dateTime = new DateTime(year, month, day);
return true;
}
}
dateTime = new DateTime();
return false;
}
Mi ejemplo anterior no se encargará de todos los casos (es decir, I' no estoy manejando años), pero te señalará en la dirección correcta.
¿Qué quiere decir, más rápido? Este código se ejecuta muy rápido a menos que tenga una fecha no válida. ¿O estás preguntando si hay una manera de hacer esto con menos código? –