Bem vindos a mais um artigo, pretendo nesse post mostra uma forma legal de validar os campos DateTime e ter vários formatos pré definidos para utilizar.
Vamos Criar um novo projeto do tipo Console, após criar vamos Adicionar uma nova Classe com nome Util essa classe aonde nos vamos colocar os nossos métodos de extensão que vai facilitar muito nossa vida na hora que tivermos desenvolvendo qualquer trabalho.
Agora vamos criar um enum aonde vamos guarda vários formatos que vamos utilizar no decorrer do projeto como mostra abaixo.


1public enum tipodate
2{
3dtBR, dtUSA, hrFormato24HRs, hrComum
4}


Depois vamos criar um método que vai validar e passar como parâmetro o tipo de formato que vamos querer utilizar em nossa string como mostra o código abaixo.




02public static string ValidarDateTime(this string pValidar,tipodate pTipo)
03{
04string _dataRetorno ="Data formato invalido";
05 
06DateTime _data = DateTime.MinValue;
07 
08if(DateTime.TryParse(pValidar,out _data))
09{
10if(pTipo == tipodate.dtBR)
11{
12_dataRetorno = _data.ToString("dd/MM/yyyy");
13}
14else if(pTipo == tipodate.dtUSA)
15{
16_dataRetorno = _data.ToString("MM/dd/yyyy");
17}
18else if (pTipo == tipodate.hrComum)
19{
20_dataRetorno = string.Format("{0:hh:mm:ss}", _data);
21}
22else if (pTipo == tipodate.hrFormato24HRs)
23{
24_dataRetorno = string.Format("{0:HH:mm:ss}", _data);
25}
26 
27}
28return _dataRetorno;
29}

Agora vou explicar cada passo qualquer método de extensão obrigatoriamente precisa ser do tipo static  e no parâmetro nos sempre precisa colocar “This string”  assim só que poder utilizar esse método de extensão sempre vai ter que ser do tipo string  nesse caso. Depois que passamos os parâmetros, criei uma variável do tipo string que vai retorna nossa validação e formato para nossa string e uma variável auxiliar para utilizar para validar nossa variável DateTime.
E fiz a validação no primeiro IF para verificar se nossa data e valida usando o método TryParse que tenta converte nossa string para um DateTime se isso acontecer é porque o formato de data e valida se não e invalido .
E Depois fiz alguns IF simples definindo os formatos que passei no enum, abaixo vou colocar um exemplo de como pode ser usado nosso método.




02class Program
03 {
04 static void Main(string[] args)
05 {
06 string data = DateTime.Now.ToString();
07 Console.WriteLine(data.ValidarDateTime(Util.tipodate.dtBR));
08 
09 }
10 }


Dúvidas sugestões mande e-mail.