Por ejemplo del año 2004
enero tiene 5
Febrero 4
Marzo 4
Abril 5
y así sucesivamente
gracias
_____________________
Edwin Duran
COTABEX
Republica Dominicana
_____________________
--
Saludos,
A.G.P. (Aplicaciones de Gestión y Productividad)
Las Arenas - Vizcaya - España
"COTABEX" <cot...@verizon.net.do> escribió en el mensaje
news:eYqpnTxn...@TK2MSFTNGP09.phx.gbl...
¿Las semanas deben ser completas o sea deben tener de 7 días? si es así
_TODOS_ los meses solo tienen 4 semanas completas.
Ahora si quieres saber cuantas semanas abarca cada mes (como por ejemplo en
un calendario saber cuantas filas se necesita para graficar determinado mes)
puedes utilizar el siguiente código
lnDiaInicial = 1 && 1=Domingo, 2=Lunes, ..., 7=Sábado
lnAnio = 2004
FOR lnMes = 1 TO 12
ldPrimerDia = DATE(lnAnio,lnMes,01)
ldUltimoDia = GOMONTH(ldPrimerDia,1) - 1
lnCantSem = Semana(ldUltimoDia, lnDiaInicial) - Semana(ldPrimerDia,
lnDiaInicial) + 1
? "Mes " + TRANSFORM(lnMes)+ ": " + TRANSFORM(lnCantSem) + " semanas"
ENDFOR
*------------------------------------------------------------
* FUNCTION Semana(tdFecha, tnPriDiaSem)
*------------------------------------------------------------
* Retorna el número de semana de una Fecha
* USO: Semana(DATE(2004,06,03),2)
* PARAMETROS:
* tdFecha = Fecha
* tnPriDiaSem = Primer día de la semana (1=Domingo, ..., 7=Sábado)
* RETORNO: Numérico
*------------------------------------------------------------
FUNCTION Semana(tdFecha, tnPriDiaSem)
IF EMPTY(tdFecha)
RETURN 0
ENDIF
IF EMPTY(tnPriDiaSem)
tnPriDiaSem = 1
ENDIF
RETURN INT((tdFecha - DATE(YEAR(tdFecha),1,1) + ;
7 - DOW(tdFecha,tnPriDiaSem)) / 7) + 1
ENDFUNC
*------------------------------------------------------------
NOTA: Utilizo la función Semana() y no Week() por los motivos descritos en
el siguiente artículo:
-- Número de semana --
http://www.portalfox.com/article.php?sid=1113
--
Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos
"COTABEX" <cot...@verizon.net.do> escribió en el mensaje
news:eYqpnTxn...@TK2MSFTNGP09.phx.gbl...
>
Luis Maria el código que me pasaste esta bien desde el punto de vista de la
explicación
ahora si te fijas el año 2004 tiene 52 semanas y la suma según tu código me
da 62 semanas, esto me puede ayudar para in trabajando a ver si sale,
si me pueden seguid ayudando no tengo problema
mil gracias
--
_____________________
Edwin Duran
COTABEX
Republica Dominicana
_____________________
"Luis María Guayán" <luis...@portalfoxxx.com> escribió en el mensaje
news:eARag9xn...@TK2MSFTNGP15.phx.gbl...
Si necesitas valores "exactos" de semanas, solo divide el número de días del
mes sobre siete:
SET DECIMALS TO 4
lnAnio = 2004
lnTotalSemanas = 0
FOR lnMes = 1 TO 12
ldPrimerDia = DATE(lnAnio,lnMes,01)
lnCantSem = DAY(GOMONTH(ldPrimerDia,1) - 1) / 7
lnTotalSemanas = lnTotalSemanas + lnCantSem
? "Mes " + TRANSFORM(lnMes)+ ": " + TRANSFORM(lnCantSem,"99.9999") + "
semanas"
ENDFOR
? "Total semanas del año :" + TRANSFORM(lnTotalSemanas,"99.9999")
--
Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos
"COTABEX" <cot...@verizon.net.do> escribió en el mensaje
news:%23e8upMz...@TK2MSFTNGP15.phx.gbl...
Por eso te insistimos los 2 en distinguir:
.- semanas naturales que tienen días en un mes (la suma será mayor que 52)
.- semanas naturales que están completas dentro del mismo mes (la suma será
menor que 52)
.- grupos de 7 días naturales (dependerá de si utilizamos decimales o no)
Tendrás que definir cual es tu objetivo final y segun eso aplicar lo
necesario.
--
Saludos,
A.G.P. (Aplicaciones de Gestión y Productividad)
Las Arenas - Vizcaya - España
"COTABEX" <cot...@verizon.net.do> escribió en el mensaje
news:%23e8upMz...@TK2MSFTNGP15.phx.gbl...
Saben que un año tiene 52 o 53 semanas, esas semana se reparten entre los 12
meses, yo lo que quiero es determinar las semanas que corresponde a cada mes
sin que se pase del total de semanas de ese año, por ejemplo el año 2004
tiene 52 semanas, el 2005 tiene 53.
ojala que me entiendan
--
_____________________
Edwin Duran
COTABEX
Republica Dominicana
_____________________
"COTABEX" <cot...@verizon.net.do> escribió en el mensaje
news:%23e8upMz...@TK2MSFTNGP15.phx.gbl...
NO, por lo visto tu tampoco nos entiendes a Carlos y a mí :-)))
No puedes trabajar con números enteros de semanas en un mes, o trabajas con
meses, o trabajas con semanas, no intentes mezclar ambas.
--
Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos
"COTABEX" <cot...@verizon.net.do> escribió en el mensaje
news:Od%23YG8%23nEH...@TK2MSFTNGP10.phx.gbl...
lo que quiero es definir en que semana debo hacerle unas deducciones a los
empleados que se hace al final de mes por ley del gobierno.
ya me dieron una idea de como hacerlo y les agradezco mucho su ayuda, mi
idea consíste en
1)saber con el week() cual es el primer día de un año y cual es el fina.
2) como la semana tiene siete días y comienza en domingo, determinar si el
ultimo día del mes es igual o mayor de jueves esto lo quiero lo quiero
controlar con fdow
mil gracias amigos
_____________________
Edwin Duran
COTABEX
Republica Dominicana
_____________________
"Luis María Guayán" <luis...@portalfoxxx.com> escribió en el mensaje
news:O735UGA...@TK2MSFTNGP09.phx.gbl...
Te paso estas dos funciones que te pueden ayudar (si es que algo he
entendido)
-- Ultimo día "X" de un mes --
http://www.portalfox.com/article.php?sid=1013
Con la función anterior puedes calcular: Ultimo Jueves de Setiembre de 2004
? UltimoDia(5,9,2004)
-- Calcular fechas festivas --
http://www.portalfox.com/article.php?sid=806
Con la función anterior puedes calcular: 1° Jueves de Octubre de 2004
? FechaFestiva(1,5,10,2004)
Y si de fechas se trata, mirate el siguiente artículo de PortalFox:
-- Trabajar con fechas y horas en Visual FoxPro --
http://www.portalfox.com/article.php?sid=1162
--
Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos
"COTABEX" <cot...@verizon.net.do> escribió en el mensaje
news:uk5ymmA...@tk2msftngp13.phx.gbl...
--
Saludos,
A.G.P. (Aplicaciones de Gestión y Productividad)
Las Arenas - Vizcaya - España
"COTABEX" <cot...@verizon.net.do> escribió en el mensaje
news:uk5ymmA...@tk2msftngp13.phx.gbl...