Caro(a) Leitor(a), hoje vou dar mais uma dica no desenvolvimento de software usando a linguagem C#, ferramenta Visual Studio 11 e framework 4.0. Lembro que o código aqui pode ser feito da versão 2.0 pra cima do framework. 

Hoje o meu problema é saber quantos dias tem o mês dentro do código. O outro problema é saber se esse dia que peguei é final de semana ou não, ou seja, é sábado ou domingo. 

Tudo isso o framework .NET pode fazer pra você, basta usar as classes corretas. 

Tag: C#, Visual Studio 11, Dias do mês, Final de semana.

Dias do mês

Para pegar os dias do mês, usei uma classe de globalização dentro do system. Esse calendário é o gregoriano. Listagem 1.

[CODE]
System.Globalization.Calendar c = new GregorianCalendar();

[/CODE]
Listagem 1: Usando a classe de globalização. 

Depois de iniciar o calendário armazenando a instância dentro da variável c, basta usar os métodos existentes. Existem vários métodos úteis, mas para resolver o meu problema usei o que pega os dias do mês. Listagem 2.
[CODE]
int dias = c.GetDaysInMonth(02, 2012);

[/CODE]
Listagem 2:  Retorna a quantidade de dias daquele mês / ano passados

Na listagem 2, foi necessário passar o mês e ano para saber quantos dias tem aquele mês. 

Final de semana

Para verificar se o dia é sábado ou domingo, foi feito um método que recebe parâmetros e retorna true ou false. É necessário passar a data completa e não apenas o mês e o ano como no exemplo anterior. Listagem 3.

[CODE]
protected Boolean isfinalDeSemana(DateTime _data)
        {
            Boolean _retorno = false;
 
            if (_data.DayOfWeek == DayOfWeek.Saturday)
                _retorno = true;
            else if (_data.DayOfWeek == DayOfWeek.Sunday)
                _retorno = true;
 
            return _retorno;
        }
[/CODE]
Listagem 3: Verifica se é final de semana.

Veja que o método recebe um tipo DateTime e retorna o tipo Boolean (true ou false). Dentro do método existe a verificação da data informada com a propriedade DayOfWeek. Não existe mágica basta verificar se o dia da semana é sábado ou domingo. 

O código if (_data.DayOfWeek == DayOfWeek.Saturday) é o que faz todo o trabalho para nós. O próximo passo basta verificar no método principal passando a data. Listagem 4.

[CODE]
if (!isfinalDeSemana("02/12/2012"))
{
Response.Write("É dia da semana ");
}

[/CODE]
Listagem 4: Chamando o método

A listagem 4 chama o método e verifica se é final de semana, se não for final de semana ele entra no método. Note que existe o sinal de exclamação antes da chamada, isso quer dizer que é uma negação. Leia-se assim: se não for final de semana.

Bom, espero que tenha gostado e qualquer dúvida pode entrar em contato pelo site pessoal www.mauriciojunior.org