Buenas, necesitaria una rutina o funcion que me calcule el numero de semana del a帽o al que pertenece una fecha.
Tiene alguien hecho algo asi o sabe como extraerlo?
Un saludo
Juan Jose
Buenas, necesitaria una rutina o funcion que me calcule el numero de semana del a帽o al que pertenece una fecha.
Tiene alguien hecho algo asi o sabe como extraerlo?
Un saludo
Juan Jose
procedure TForm1.Button1Click(Sender: TObject);
var
frstDay,toDay : TDateTime;
week : Integer;
begin
frstDay := StrToDate('1/1/96');
toDay := StrToDate(Edit1.Text);
week := Trunc((toDay - frstDay) / 7) + 1;
Label1.Caption := IntToStr(week);
end; function NumSemana(Fecha:string):integer;
var
PrimerDia:TDate;
begin
{Calculamos primer dia del a帽o}
{First day of year}
PrimerDia:=StrToDate('01/01/'+Copy(Fecha,7,2));
{Calculamos el numero de semana del a帽o}
{Calculate the week of year number}
Result:=Trunc(
(StrToDate(Fecha)-
PrimerDia+
DayOfWeek(PrimerDia)-1
) /7)+1;
end; function NumSemana(Fecha:string):integer;
var
PrimerDia:TDate;
DiaDelPrimerDia:integer;
begin
{Calculamos primer dia del a帽o}
{First day of year}
PrimerDia:=StrToDate('01/01/'+Copy(Fecha,7,2));
{Calculamos dia de la semana que empieza por lunes}
{Calculate the day of week, begining by monday instead of Sunday}
If DayOfWeek(PrimerDia)-1 =0
then DiaDelPrimerDia:=7
else DiaDelPrimerDia:=DayOfWeek(PrimerDia)-1;
{Calculamos el numero de semana del a帽o}
{Calculate the week of year number}
Result:=Trunc(
(StrToDate(Fecha)-
PrimerDia+
DiaDelPrimerDia-1
) /7)+1;
end;Hola,, ve este codigo:
FUNCTION Semana(dFecha)
local nSemanas, nrestoDias, nDiaslSem, nDias, dFechaAux
DEAFULT dFecha := DATE()
IF VALTYPE(dFecha) <> "D"
Retrun(-1)
ENDIF
dFechaAux := CTOD("01/01/" + ALLTRIM(STR(YEAR(dFecha))))
nDias := dFecha - dFechaAux + 1
nSemanas := INT(nDias / 7 )
nRestoDias := nDias % 7
nDiaslSem := 8 - IF(DOW(dFechaAux) - 1 = 0, 7, DOW(dFechaAux) - 1 )
RETURN nSemanas + IF(nDiaslSem >= nRestoDias, 1, 2 )
(Extraido de Librerias en Clipper 5.01 Grupo EIDOS)
Salu2
Gracias, lo pruebo.
Un saludo
Juan Jos茅