Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Faccruz

Deixar esse código mais apresentavel

Recommended Posts

Tenho esse código

 

for (Int32 i = 0; i <= lista.Items.Count - 1; i++)
            {
                DateTime DataInformativo = Convert.ToDateTime(lista.Items[i].SubItems[1].Text);

                if ((int)DataInformativo.DayOfWeek == 0)
                {
                    if (DataInformativo != DateTime.Today.AddDays(-2))
                    {
                        lista.Items[i].BackColor = System.Drawing.Color.Red;
                    }
                }
                if (DataInformativo <= DateTime.Today.AddDays(-2))
                {
                    lista.Items[i].BackColor = System.Drawing.Color.Red;
                }

                if (DataInformativo == DateTime.Today)
                {
                    lista.Items[i].BackColor = System.Drawing.Color.White;
                }

                if (DataInformativo == DateTime.Today.AddDays(-1))
                {
                    lista.Items[i].BackColor = System.Drawing.Color.White;
                }

                if (lista.Items[i].SubItems[2].Text == "Informativo não localizado")
                {
                    lista.Items[i].BackColor = System.Drawing.Color.Yellow;
                }
            }

Esse código serve para pintar a ListBox. As regras são as seguintes:

1 - Pintar em vermelho a linha onde a data for menor ou igual a 2 dias da data atual

2 - Se for domingo, comparar subtraindo 2 dias da data atual

3 - Caso alguma filial não envie o arquivo, pintar em amarelo

 

Teria como deixar mais apresentavel?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais os dias da semana em que é feito o informativo? Por que no caso o domingo você compara com a sexta, mas a segunda você compara com o domingo e sábado, e terça você chega a comparar com o domingo.

 

 

Se bem entendi não podem existir dois dias sem informativos correto ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faccruz.

 

Primeiramente, no topo da aplicação, utilize o

 

using System.Drawings
A partir daí você reduz de

 

System.Drawing.Color.Red

para

 

Color.Red

Segundo, esse if tá muito estranho. Você utilizou um método que adiciona dias, a partir de uma data específica para comparar valores.

OUtra, considere a opção do switch ao invés dos if's. Ou mesmo o else if ficaria mais legível do que isso que está sendo apresentado.

 

tem 2 if retornando o mesmo resultado

 

e.g

if (DataInformativo == DateTime.Today)
                {
                    lista.Items[i].BackColor = System.Drawing.Color.White;
                }

                if (DataInformativo == DateTime.Today.AddDays(-1))
                {
                    lista.Items[i].BackColor = System.Drawing.Color.White;
                }

Considere a utilização dos operadores lógicos. E.g.

 

 

if (DataInformativo == DateTime.Today || DataInformativo == DateTime.Today.AddDays(-1))

{

lista.Items[i].BackColor = System.Drawing.Color.White;

}

 

 

Dê uma olhada nisso que te falei, escolha algumas opções e poste o novo código quando terminar. Daí poderemos o ajudar melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais os dias da semana em que é feito o informativo? Por que no caso o domingo você compara com a sexta, mas a segunda você compara com o domingo e sábado, e terça você chega a comparar com o domingo.

 

 

Se bem entendi não podem existir dois dias sem informativos correto ???

 

 

é assim, tenho que comparar sempre o dia anterior, mas isso não se aplica aos domingos, onde preciso comparar com o sabado. A grosso modo seria basicamente isso:

 

O informativo enviado na segunda a tarde, irei fazer a captação na terça, o enviado na terça, faço na quarta e assim por diante. Porém os informativos do sabado, que deveriam ser captado no domingo, só são captados na segunda, por isso, quando a data de leitura cair em uma segunda, devo comparar com a data de sabado.

 

Será que consegui explicar??

 

kobutiii: Como faira isso em Switch Case?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.