Hola y muchas gracias y felicitaciones por tu eficiencia.
Debe haber algo que no va bien porque si le selecciono la semana 1 01012010 va perfecto pero en cuanto le selecciono 11012010 me da una semana mas para todas las semanas.
quiero decir que exceptuando la semana uno para el resto te da una semana mas de la real y no veo porque.
Saludos y gracias de nuevo
Cita:
Empezado por José Luis Garcí
Hola DavidSG4, prueba con la siguiente
Código Delphi [-]//Calcula las semanas del año function NumSemana(Fecha:string):integer; var PrimerDia:TDate; DiaDelPrimerDia:integer; begin {Calculamos primer dia del año} PrimerDia:=StrToDate('01/01/'+Copy(Fecha,7,4)); {Calculamos dia de la semana que empieza por lunes} if DayOfWeek(PrimerDia)-1 =0 then DiaDelPrimerDia:=7 else DiaDelPrimerDia:=DayOfWeek(PrimerDia)-1; {Calculamos el numero de semana del año} Result:=Trunc( (StrToDate(Fecha)- PrimerDia+ DiaDelPrimerDia-1 ) /7)+1; end;
|