Função para calcular uma data de segunda a sexta
28/03/2008
0
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
Posts
28/03/2008
Groove
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)
28/03/2008
Groove
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:
30/03/2008
Abermar
Vlw pela força!
Clique aqui para fazer login e interagir na Comunidade :)