Nº de semana a partir de fecha
Hola expertos,
Es posible obtener el número de semana a partir de una fecha?
Un saludo
Es posible obtener el número de semana a partir de una fecha?
Un saludo
DateDiff("ww", DateValue("01/01/" & CStr(Year(MiFecha))), MiFecha, 2) + 1
Saludos
Saludos
No sé si existe algún control o propiedad que devuelva el número de semanas. Si no es así tendrás que inventarte un algoritmo. Una solución que he buscado ahora sería la siguiente (en pseudocódigo):
' Leyenda:
' AñoActual, MesActual, DiaActual es la fecha actual
' AñoOrig, MesOrig, DiaOrig es la fecha inicial
' Mes es una matriz que contiene los días de cada mes
' Dias contiene los días transcurridos
' Semanas las semanas transcurridas
' I es un conntador
Dias = 0
Si DiaActual > DiaOrig
... Dias = Dias + DiaActual - DiaOrig
fin Si
Si Mes(MesActual) = Mes(MesOrig)
....Dias = DiaActual - DiaOrig
Si no
....Para i=MesOrig+1, hasta i=MesActual-1, i=i+1
........Dias = Dias + Mes(I)
....Fin Para
finSi
Si AñoActual>AñoOrig
....Si AñoActual-AñoOrig>1
........Dias=Dias + (365 * AñoActual - AñoOrig
....Si no
........Para I=1; hasta I=MesActual-1; I = I+1
............Dias = Dias + Mes(I)
........finPara
........Dias = Dias + DiaActual - (Mes(MesOrig)-DiaOrig)
....finSi
finSi
Semanas = Dias 7
No lo he probado, pero imagino que debería funcionar. Analizalo y si crees que funcionaría utilizalo. No olvides comprobar antes de esto que la DataActual sea mayor que la DataOriginal. Suerte
' Leyenda:
' AñoActual, MesActual, DiaActual es la fecha actual
' AñoOrig, MesOrig, DiaOrig es la fecha inicial
' Mes es una matriz que contiene los días de cada mes
' Dias contiene los días transcurridos
' Semanas las semanas transcurridas
' I es un conntador
Dias = 0
Si DiaActual > DiaOrig
... Dias = Dias + DiaActual - DiaOrig
fin Si
Si Mes(MesActual) = Mes(MesOrig)
....Dias = DiaActual - DiaOrig
Si no
....Para i=MesOrig+1, hasta i=MesActual-1, i=i+1
........Dias = Dias + Mes(I)
....Fin Para
finSi
Si AñoActual>AñoOrig
....Si AñoActual-AñoOrig>1
........Dias=Dias + (365 * AñoActual - AñoOrig
....Si no
........Para I=1; hasta I=MesActual-1; I = I+1
............Dias = Dias + Mes(I)
........finPara
........Dias = Dias + DiaActual - (Mes(MesOrig)-DiaOrig)
....finSi
finSi
Semanas = Dias 7
No lo he probado, pero imagino que debería funcionar. Analizalo y si crees que funcionaría utilizalo. No olvides comprobar antes de esto que la DataActual sea mayor que la DataOriginal. Suerte