domingo, 24 de mayo de 2009

Validar Fecha en C#

Acabo de hacer una funcion en C#, que permite validar una fecha en un formulario Web.De acuerdo a si la fecha que ingreso es fecha (de partida), o es Mayor, Mayor o igual , igual o menor a la fecha actual.
La comparto con todos los que visitan el sitio para que la utilizen, la mejoren o simplemente me digan si es posible hacer lo mismo pero de mejor manera.

La funcion se llama:
validarFecha

Los parametros que recibe son:

1.Fecha a comparar
2.Control CustomValidator
3.Comparación [Mayor, MayorIgual, Menor, Igual]

Si las condiciones no se cumplen se muestra el mensaje que hayas configurado en el control CustomValidator

//www.marcosdonoso.cl 25/05/2009
private void validarFecha(string Fecha, CustomValidator cVal, string Comparacion)
{
int diferencia;
DateTime fechaHoy = DateTime.Now;
DateTime fechaParametro;
if (Fecha == "")
{
cVal.IsValid = false;
}
else
{
try
{
fechaParametro = DateTime.Parse(Fecha);
TimeSpan ts = fechaParametro - fechaHoy;
diferencia = ts.Days;
//Response.Write(diferencia);
if (Comparacion == "Mayor")
{
if (diferencia > 0)
{
cVal.IsValid = true;
}
else { cVal.IsValid = false; }
}
if (Comparacion == "MayorIgual")
{
if (diferencia >= 0)
{
cVal.IsValid = true;
}
else { cVal.IsValid = false; }
}
if (Comparacion == "Menor")
{
if (diferencia < 0)
{
cVal.IsValid = true;
}
else { cVal.IsValid = false; }
}
if (Comparacion == "Igual")
{
if (diferencia == 0)
{
cVal.IsValid = true;
}
else { cVal.IsValid = false; }
}
}
catch
{
cVal.IsValid = false;
}
}

}


Pueden descargar un ejemplo donde la utilizo desde la siguiente ubicación:
http://j.gs/TYt

Recomiendo la lectura de estos posts si hay problemas:
http://marcosdonoso.cl/?p=140

http://dotnetperls.com/Content/DateTime-Parse.aspx

No hay comentarios: