Mas se vc quiser que comece na segunda esta na mão tb. var Ano : Word; vSem, vDia, vSemana : Integer; vData : TDate;
begin Ano := 2007; vSemana := 14; vDia := 4; vData := EncodeDate(Ano, 1, 1); //while DayOfWeek(vData) > 1 do while DayOfWeek(vData) > 2 do vData := vData - 1; vSem := 1; vData := vData + 7; while vSem < vSemana do begin Inc(vSem); vData := vData + 7; end; vData := vData - 1; //while DayOfWeek(vData) > vDia do while DayOfWeek(vData) > vDia + 1 do vData := vData - 1; ShowMessage(DateToStr(vData)); end; Eduardo Eduardo Castro Alves escreveu: > > Ta na mão. > > var > Ano : Word; > vSem, > vDia, > vSemana : Integer; > vData : TDate; > > begin > > Ano := 2007; > vSemana := 14; > vDia := 5; > // A semana começa no domingo e não na segunda por isso o dia é 5 e não 4 > // Mas se você quiser contar a partir da segunda é só ajusta para o seu > gosto > vData := EncodeDate(Ano, 1, 1); > while DayOfWeek(vData) > 1 do > vData := vData - 1; > vSem := 1; > vData := vData + 7; > while vSem < vSemana do > begin > Inc(vSem); > vData := vData + 7; > end; > vData := vData - 1; > while DayOfWeek(vData) > vDia do > vData := vData - 1; > ShowMessage(DateToStr(vData)); > > end; > > Eduardo > Natanael Rodrigues escreveu: > > > > Existe componente ou função que retorne de acordo com o número da > > semana do ano e o númedo do dia semana(Seg-Do o dia do calendário? > > > > Por exemplo: > > > > A Semana numero: 14 > > O dia da Semana: 4 > > > > retornaria 05/04/2007 > > > > Grato. > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > _______________________________________________________ > Yahoo! Mail - Sempre a melhor opção para você! > Experimente já e veja as novidades. > http://br.yahoo.com/mailbeta/tudonovo/ > <http://br.yahoo.com/mailbeta/tudonovo/> > > _______________________________________________________ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo.com/mailbeta/tudonovo/