Página 1 de 1

Calculo de diárias de Hotel

Enviado: 21 Set 2019 14:16
por valtecomjose
Boa tarde amigos,
Estou enfrentando um problema, eu preciso calcular diárias de Hotel, o detalhe é que diárias de Hotel fecham ao meio dia e não a meia-noite, algum dos amigos tem alguma experiência ou função que faça esse cálculo?
Nesse cálculo é necessário calcular se a pessoa entrar as 9:00 da manhã a primeira diária fecha as 12:00 e se a pessoa sair no dia seguinte as 12:01 deverá cobrar 3 diárias, das 9:00 as 12:00, das 12:00 as 12:00 do outro dia e das 21:00 as 12:01, 3 diárias, é claro que terá a opção de desconto pois ninguém pagaria 1 minuto de diária, mas ai nesse caso é um detalhe.
Calcular a diária a partir da 00:00 é fácil.
Obrigado.
Valteçom
Uberaba MG Brasil

Calculo de diárias de Hotel

Enviado: 21 Set 2019 15:59
por JoséQuintas
Não entendi, à primeira vista, suas palavras já disseram a solução.

Código: Selecionar todos

dDiarias := dSaida - dEntrada
IF hEntrada < "12:00"
   dDiarias += 1
ENDIF
IF hSaida > "12:00"
   dDiarias += 1
ENDIF
Supondo que entrou as 9 e saiu as 15.... 2 diárias.

Calculo de diárias de Hotel

Enviado: 21 Set 2019 18:02
por JoséQuintas
valtecomjose escreveu:Calcular a diária a partir da 00:00 é fácil.
Nem tanto, seria a mesma coisa.

Então... diárias são dias... diferença entre uma data e outra.
O horário, só afeta entrada e saída.

Se entrou meia noite... não sei se considera 23:59 do dia ou 00:00 do dia seguinte.
Se considerar dia anterior: vai ter um dia de diferença, mas não vai somar nada porque entrou depois das 12
Se considerar dia seguinte: vão ser zero dias, mas vai somar 1 porque entrou antes das 12
Ou seja, nos dois casos paga uma diária, considerando que saiu antes do meio dia.


Isso mostra uma coisa que tenho falado nos últimos posts: a gente que complica
Praticamente foi seu texto em formato de programação.
A programação, e o avanço da programação, é apenas tentar deixar tudo o mais "humano" possível.
É parar de pensar em bits e bytes, e pensar no jeito humano.
Nesse cálculo é necessário calcular se a pessoa entrar as 9:00 da manhã a primeira diária fecha as 12:00 e se a pessoa sair no dia seguinte as 12:01 deverá cobrar 3 diárias,
Nesse mencionado.

dia seguinte - dia anterior = 1
entrada antes do meio dia = soma + 1
saída depois do meio dia = soma + 1
resultado = 3 diárias

Calculo de diárias de Hotel

Enviado: 21 Set 2019 18:11
por JoséQuintas
Pensei em outros casos: entrou as 9 e saiu as 10, ou entrou as 15 e saiu as 16

nos dois casos, diferenças de dias zero.
no primeiro caso: entrou antes das 9, soma 1
no segundo caso: saiu depois das 12, soma 1
Então... nos dois casos cobra uma diária.

À primeira vista, atende qualquer situação.

Calculo de diárias de Hotel

Enviado: 22 Set 2019 10:43
por valtecomjose
Amigo José Quintas,
Então, pode acontecer de entrar as 9:00 e sair as 10:00, ai hoje - hoje daria zero e eu teria de acrescer 1, mas poderá acontecer de entrar as 10:00 e sair as 14:00 continua sendo hoje - hoje resultando zero, mas ai seriam 2 diárias, pois ultrapassou 12:00.
Mas seus esclarecimentos já ajudou bastante.
Vou mexer no meu código.
Abraços.
Valteçom
Uberaba MG Brasil

Calculo de diárias de Hotel

Enviado: 22 Set 2019 10:50
por Nascimento
vc tem que usar a data e a hora tambem
tenho um sistema de mótel, é bem parecido com hotel, só não tem os critérios de diaria igual a hotel
mais o principio de contar tempo é o mesmo, tipo, pernoites, horas excedentes etc etc

Calculo de diárias de Hotel

Enviado: 22 Set 2019 14:20
por JoséQuintas
valtecomjose escreveu:Então, pode acontecer de entrar as 9:00 e sair as 10:00, ai hoje - hoje daria zero e eu teria de acrescer 1, mas poderá acontecer de entrar as 10:00 e sair as 14:00 continua sendo hoje - hoje resultando zero, mas ai seriam 2 diárias, pois ultrapassou 12:00.
Então... o cálculo vai dar exatamente isso.

Podem ficar zero, 1, 2, 60, 500 dias, tanto faz.
A quantidade de dias é a diferença entre datas.
Mas....

Na entrada, se entrou antes do meio dia soma 1
Na saída, se saiu depois do meio dia soma 1

Não é uma ou outra, são as duas SEMPRE.

Das 9 as 10.... soma 1, porque caiu numa condição
Das 10 as 14... soma 2, porque caiu nas duas condições