Calcular dias 1 y dias 2
Publicado por es_binario (757 intervenciones) el 04/11/2009 16:37:12
Que tal amigos, tengo un formulario que calcula un calendario de pagos dependiendo del sistema de pago semana, quincenal, mensual
algo asi
fecha = thisform.txtFecha.Value
*// si el dia es igual a 1 no hay problema
LOCAL nva_fecha
IF DAY(fecha) <> 1
nva_fecha = fecha - DAY(fecha) + 1
ELSE
nva_fecha = fecha
ENDIF
FOR a = 1 TO pagos_a
*// TIPO DE PAGO
DO CASE
CASE thisform.optiongroup1.Value = 1
fecha = fecha + 7
CASE thisform.optiongroup1.Value = 2
*// dia 2 y dia 16
fecha = fecha + 15
CASE thisform.optiongroup1.Value = 3
*// Suma 1 para meses
fecha = GOMONTH(nva_fecha, a)
ENDCASE
*// dia de pago
DO CASE
CASE DOW(fecha) = 1
el_dia = "DOM"
CASE DOW(fecha) = 2
el_dia = "LUN"
CASE DOW(fecha) = 3
el_dia = "MAR"
CASE DOW(fecha) = 4
el_dia = "MIE"
CASE DOW(fecha) = 5
el_dia = "JUE"
CASE DOW(fecha) = 6
el_dia = "VIE"
CASE DOW(fecha) = 7
el_dia = "SAB"
ENDCASE
INSERT INTO pagos_cur (pag, pago, fechaa, dia_semana) VALUES (a,Thisform.Txtpagos.Value, fecha, el_dia)
ENDFOR
la parte importantes
*// dia 2 y dia 16
fecha = fecha + 15
me gustaria obtener, el dia 2 y el 16
habia probado con una simple decicion
a la fecha se le suman 15 dias
bueno el resultado hago una decicion
if day(fecha) > 15
fecha = fecha - day(fecha) + 2
else
fecha = fecha - day(fecha) + 16
endif
el problema es que hay fechas que se acercan al 29 o 30 y 31 y esas fechas se deben de manejar como dia primero es decir el dia 2
fecha = fecha - day(fecha) + 2
alguien que me heche la mano, se los agradeceria de antemano.
algo asi
fecha = thisform.txtFecha.Value
*// si el dia es igual a 1 no hay problema
LOCAL nva_fecha
IF DAY(fecha) <> 1
nva_fecha = fecha - DAY(fecha) + 1
ELSE
nva_fecha = fecha
ENDIF
FOR a = 1 TO pagos_a
*// TIPO DE PAGO
DO CASE
CASE thisform.optiongroup1.Value = 1
fecha = fecha + 7
CASE thisform.optiongroup1.Value = 2
*// dia 2 y dia 16
fecha = fecha + 15
CASE thisform.optiongroup1.Value = 3
*// Suma 1 para meses
fecha = GOMONTH(nva_fecha, a)
ENDCASE
*// dia de pago
DO CASE
CASE DOW(fecha) = 1
el_dia = "DOM"
CASE DOW(fecha) = 2
el_dia = "LUN"
CASE DOW(fecha) = 3
el_dia = "MAR"
CASE DOW(fecha) = 4
el_dia = "MIE"
CASE DOW(fecha) = 5
el_dia = "JUE"
CASE DOW(fecha) = 6
el_dia = "VIE"
CASE DOW(fecha) = 7
el_dia = "SAB"
ENDCASE
INSERT INTO pagos_cur (pag, pago, fechaa, dia_semana) VALUES (a,Thisform.Txtpagos.Value, fecha, el_dia)
ENDFOR
la parte importantes
*// dia 2 y dia 16
fecha = fecha + 15
me gustaria obtener, el dia 2 y el 16
habia probado con una simple decicion
a la fecha se le suman 15 dias
bueno el resultado hago una decicion
if day(fecha) > 15
fecha = fecha - day(fecha) + 2
else
fecha = fecha - day(fecha) + 16
endif
el problema es que hay fechas que se acercan al 29 o 30 y 31 y esas fechas se deben de manejar como dia primero es decir el dia 2
fecha = fecha - day(fecha) + 2
alguien que me heche la mano, se los agradeceria de antemano.
Valora esta pregunta
0