Visual Basic - Liquidación de tiempos

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Juan Carlos C
Val: 10
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Liquidación de tiempos

Publicado por Juan Carlos C (130 intervenciones) el 31/05/2012 20:29:49
Tengo un problema con la liquidación de tiempos en un parqueadero, estas son las premisas ( los valores están en pesos)

1) Si el vehículo ingresa entre las 06:00 y las 17:59 tiene una tarifa básica de $4000 por 5 horas o menos, a partir de la 6ta hora paga a $700 por hora

2) Si un vehículo ingresa entre las 18:00 y las 05:59 del día siguiente paga $8400 las 12 horas si sale antes de las 12 horas paga lo mismo si sale después de las 12 horas paga hora adicional a $700

Ej. si un vehículo ingresa al parqueadero a las 16:00 y no sale hasta las 8:00 del día siguiente se le cobra lo del punto 1 mas los del punto 2 o sea $4000 (entre las 16:00 y las 17:59) + $8400 (de las 18:00 hasta las 06:00) + 2 Horas a $700 cada una (de las 06:01 hasta la salida a las 08:00)

3) En ambos casos por cada 30 días al interior del parqueadero se descarta todo lo anterior y se le cobra el mes a $500.000 mas los días y horas adicionales y no se le cobra la tarifa básica de $4000.

he estado intentando con las funciones DateDiff pero no me da, por que si el vehículo ingresa el 31 de mayo y sale el 01 de junio, esta función me da como resultado 1 mes ???

Gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Liquidación de tiempos

Publicado por Pedro Luis (57 intervenciones) el 01/06/2012 14:38:02
No necesitas el Datedif, Las fechas se pueden sumar y restar,

cdate("1-06-2012 9:00")-cdate("31-05-2012 8:00")= 1'04166666666424

El resultado son dias, y los decimales son decimales de dia y ya sabes el dia tiene 24 horas y la hora 60 minutos, pues eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Carlos C
Val: 10
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Liquidación de tiempos

Publicado por Juan Carlos C (130 intervenciones) el 01/06/2012 15:37:12
Hola Pedro,

Lo he hecho de la siguiente manera:

la funcion datediff me entrega en numero de horas entre las dos fechas...

'Calcular los meses
varTotalMeses = Int(varHoras / 720)
'calcular los dias
varTotalDias = Int(varHoras / 24) - (varTotalMeses * 30)
'calcular las horas sobrantes
varTotalHoras = varHoras - ((varTotalMeses * 720) + (varTotalDias * 24))

Pero el dato que me pasas en muy bueno. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar