Função para calcular uma data de segunda a sexta

28/03/2008

0

Pessoal,

Por favor, preciso calcular uma data válida, e quero que essa ´função´ me retorne um dia válido(de segunda a sexta). Ex: se eu passar um dia que caia no sábado a função me retorna a segunda feira como dia válido ou seja se eu passar um dia que é sábado domingo ou feriado a mesma me retorna o próximo dia válido.

Agradeço a todos
Vlw


Abermar

Abermar

Responder

Posts

28/03/2008

Groove

opa blz???

esse retorno q vc fala é o que?
string ???
datetime??

eu fiz algo parecido mas é preciso adaptar se eu souber qual o retorno q vc quer ficaria mais facil!!!

Valew!!! 8)


Responder

28/03/2008

Groove

Bom vamos ver se é isto heheheheh

    private string retornadata()
    {
        //meu webservice 
        WsSinob.Service ws = new WsSinob.Service();
        DateTime diasemana = new DateTime();
        //aqui busco se existe a data do feriado do dia corrente para comparar (datatable)
        //dia e hora (geralmente eu uso a mesma data do banco para q podemos 
        //ter certeza que está vindo a data certa já q a data do feriado está vindo de lá)
        DataTable feriado = ws.GetDataFeriadoByDataFeriado(DateTime.Now);
        //inteiro
        int dif = 0;
        //dia e hora (geralmente eu uso a mesma data do banco para q podemos 
        //ter certeza que está vindo a data certa já q a data do feriado está vindo de lá)
        diasemana = DateTime.Now;

        if ((diasemana.DayOfWeek.ToString() != "Sunday") && (diasemana.DayOfWeek.ToString() != "Saturday"))
        {
            if (feriado.Rows.Count == 1)
            {
                dif = dif + 1;
                DateTime datafin = diasemana.AddDays(dif);
                datafin = diasemana.AddDays(dif);

                if (datafin.DayOfWeek.ToString() == "Sunday") 
                {
                    dif = dif + 1;
                }
                if (datafin.DayOfWeek.ToString() == "Saturday")
                {
                    dif = dif + 2;
                }
            }
        }

        if ((diasemana.DayOfWeek.ToString() == "Sunday") && (feriado.Rows.Count == 0))
        {
            dif = dif + 1;
        }
        if ((diasemana.DayOfWeek.ToString() == "Saturday") && (feriado.Rows.Count == 0))
        {
            dif = dif + 2;
        }

        //retorno com data
        DateTime datafinal = diasemana.AddDays(dif);
        datafinal = diasemana.AddDays(dif);

        //retorno como dia da semana por extenso
        string diadasemanaporextenso;
        diadasemanaporextenso =  datafinal.DayOfWeek.ToString();
        //retorno como string (mas poderia ser datetime)
        return Convert.ToString(diadasemanaporextenso);

    }

tomara q tenha ajudado
bom só uma coisa seria melhor vc criar uma tabela ´Feriados´ no seu banco já q os mesmo (feriados) mudam ano apos ano vai ser melhor controlar eles de lá e outra vc não vai precisar recompilar o prog só porque um tiatino mudou a data do feriado ´tal´.
Só precisa de 3 colunas:
idFeriado -- (PK) (se quiser pode ser identy)
DataFeriado -- (datetime)
Descrição -- (varchar (50)) (no prog não vai precisar disso (acho eu) mas é para identificar melhor no banco)

Bom foi isso q consegui, estou no serviço e pra ajudar os amigos fica dificil, valew galera!!! :lol:


Responder

30/03/2008

Abermar

Vlw Groove, vou dar uma olhada neste código e qualquer dúvida eu posto no fórum novamente.
Vlw pela força!


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar