Estou tendo problema em criar uma parte desse algoritmo, especificamente de ligação que começa em um dia e termina no dia seguinte, segue abaixo como eu estou fazendo:
Var
// Seção de Declarações das variáveis
hi, mi, hf, mf, tempo1, tempo2, tempo3, tempo4, momentoinicial, momentofinal:inteiro
vb, valortempo1, valortempo2, valortempo3, valortempo4, valortotal: real
Inicio
escreva("Digite hora inicial: ")
leia (hi)
escreva("Digite minuto inicial: ")
leia (mi)
escreva("Digite hora final: ")
leia (hf)
escreva("Digite minuto final: ")
leia (mf)
escreva("Digite valor base do minuto: ")
leia(vb)
tempo1 <- 0
tempo2 <- 0
tempo3 <- 0
tempo4 <- 0
momentoinicial <- hi*60 + mi
momentofinal <- hf*60 + mf
se (momentofinal >= momentoinicial) entao //ligacao comecou em um dia e terminou no mesmo dia
//Ligação comecou no primeiro intervalo de tempo (de 0h às 9h)
se (hi < 8) OU ((hi = 8) E (mi <= 59)) entao //ligação comecou no 1o intervalo
se (hf < 8) OU ((hf = 8) E (mf <= 59)) entao //ligação terminou no 1o intervalo
se (mf < mi) entao
mf <- mf + 60
hf <- hf -1
fimse
tempo1 <- (hf - hi) * 60 + (mf - mi) + 1
senao
tempo1 <- (8 - hi) * 60 + (59 - mi) + 1//cálculo dos minutos q a ligação consumiu no 1º intervalo
se (hf < 17) OU ((hf = 17) E (mf <= 59)) entao //ligação terminou no 2º intervalo
tempo2 <- (hf - 9) * 60 + mf //cálculo dos minutos que a ligação consumiu no 2º intervalo
senao
tempo2 <- (17 - 9) *60 + (59 - 0) + 1 // a ligação consumiu todos os minutos do 2º intervalo
se (hf < 20) OU ((hf = 20) E (mf <= 59)) entao //ligação terminou no 3º intervalo
tempo3 <- (hf - 18) * 60 + mf //cálculo dos minutos que a ligação consumiu no 3º intervalo
senao //a ligação só pode, entao, ter terminado no 4º intervalo
tempo3 <- (20 - 18) * 60 + (59 - 0) + 1 //a ligação consumiu todos os minutos do 3º intervalo
tempo4 <- (hf - 21) * 60 + mf //cálculo dos minutos q a ligação consumiu no 4º intervalo
fimse
fimse
fimse
senao
//Ligação comecou no segundo intervalo de tempo (de 9h às 17h59)
se (hi < 17) OU ((hi = 17) E (mi <= 59)) entao //ligação comecou no 2o intervalo
se (hf < 17) OU ((hf = 17) E (mf <= 59)) entao //acabou no 2o intervalo
se (mf < mi) entao
mf <- mf + 60
hf <- hf -1
fimse
tempo2 <- (hf - hi) * 60 + (mf - mi) +1 //cálculo dos minutos que a ligação consumiu no 2º intervalo
senao
tempo2 <- (17 - hi) * 60 + (59 - mi) + 1 //cálculo dos minutos que a ligação consumiu no 2º intervalo
se (hf < 20) OU ((hf = 20) E (mf <= 59)) entao //ligação terminou no 3º intervalo
tempo3 <- (hf - 18) * 60 + mf //cálculo do minutos q a ligaçao consumiu no 3º intervalo
senao
tempo3 <- (21 - 18) * 60 // a ligação consumiu todos os minutos do 3º intervalo
tempo4 <- (hf - 21) * 60 + mf //cálculo dos minutos q a ligação consumiu no 4º intervalo
fimse
fimse
senao
//ligação comecou no 3º intervalo de tempo (das 18h às 20h59)
se (hi < 20) OU ((hi = 20) E (mi <= 59)) entao //ligação comecou no 3o intervalo
se (hf < 20) OU ((hf = 20) E (mf <= 59)) entao //ligação terminou no 3º intervalo
se (mf < mi) entao
mf <- mf + 60
hf <- hf -1
fimse
tempo3 <- (hf - hi) * 60 + (mf - mi) +1 //cálculo dos minutos que a ligação consumiu no 3º intervalo
senao
tempo3 <- (20 - hi) * 60 + (59 - mi) + 1 //cálculo dos minutos que a ligação consumiu no 3º intervalo
tempo4 <- (hf - 21) * 60 + mf //cálculo dos minutos q a ligação consumiu no 4º intervalo
fimse
senao //a ligação comecou no 4º intervalo de tempo (das 21h às 23h59)
tempo4 <- (hf - hi) * 60 + (mf - mi) + 1 //cálculo dos minutos q a ligação consumiu no 4º intervalo
fimse
fimse
fimse
senao
se (hi > 21) OU ((hi = 21) E (mi <= 0)) entao //ligação comecou no 1o intervalo
se (hf > 21) OU ((hf = 21) E (mf <= 0)) entao //ligação terminou no 1o intervalo
se (mf < mi) entao
mf <- mf + 60
hf <- hf -1
fimse
tempo4 <- (hf - hi) * 60 + (mf - mi) + 1
senao
tempo4 <- (21 - hi) * 60 + (mf - mi) + 1//cálculo dos minutos q a ligação consumiu no 1º intervalo
se (hf > 18) OU ((hf = 18) E (mf <= 0)) entao //ligação terminou no 2º intervalo
tempo3 <- (hf - 9) * 60 + mf //cálculo dos minutos que a ligação consumiu no 2º intervalo
senao
tempo2 <- (17 - 9) *60 + (59 - 0) + 1 // a ligação consumiu todos os minutos do 2º intervalo
se (hf < 20) OU ((hf = 20) E (mf <= 59)) entao //ligação terminou no 3º intervalo
tempo3 <- (hf - 18) * 60 + mf //cálculo dos minutos que a ligação consumiu no 3º intervalo
senao //a ligação só pode, entao, ter terminado no 4º intervalo
tempo3 <- (20 - 18) * 60 + (59 - 0) + 1 //a ligação consumiu todos os minutos do 3º intervalo
tempo4 <- (hf - 21) * 60 + mf //cálculo dos minutos q a ligação consumiu no 4º intervalo
fimse
fimse
fimse
senao
//Ligação comecou no segundo intervalo de tempo (de 9h às 17h59)
se (hi < 17) OU ((hi = 17) E (mi <= 59)) entao //ligação comecou no 2o intervalo
se (hf < 17) OU ((hf = 17) E (mf <= 59)) entao //acabou no 2o intervalo
se (mf < mi) entao
mf <- mf + 60
hf <- hf -1
fimse
tempo2 <- (hf - hi) * 60 + (mf - mi) +1 //cálculo dos minutos que a ligação consumiu no 2º intervalo
senao
tempo2 <- (17 - hi) * 60 + (59 - mi) + 1 //cálculo dos minutos que a ligação consumiu no 2º intervalo
se (hf < 20) OU ((hf = 20) E (mf <= 59)) entao //ligação terminou no 3º intervalo
tempo3 <- (hf - 18) * 60 + mf //cálculo do minutos q a ligaçao consumiu no 3º intervalo
senao
tempo3 <- (21 - 18) * 60 // a ligação consumiu todos os minutos do 3º intervalo
tempo4 <- (hf - 21) * 60 + mf //cálculo dos minutos q a ligação consumiu no 4º intervalo
fimse
fimse
senao
//ligação comecou no 3º intervalo de tempo (das 18h às 20h59)
se (hi < 20) OU ((hi = 20) E (mi <= 59)) entao //ligação comecou no 3o intervalo
se (hf < 20) OU ((hf = 20) E (mf <= 59)) entao //ligação terminou no 3º intervalo
se (mf < mi) entao
mf <- mf + 60
hf <- hf -1
fimse
tempo3 <- (hf - hi) * 60 + (mf - mi) +1 //cálculo dos minutos que a ligação consumiu no 3º intervalo
senao
tempo3 <- (20 - hi) * 60 + (59 - mi) + 1 //cálculo dos minutos que a ligação consumiu no 3º intervalo
tempo4 <- (hf - 21) * 60 + mf //cálculo dos minutos q a ligação consumiu no 4º intervalo
fimse
senao //a ligação comecou no 4º intervalo de tempo (das 21h às 23h59)
tempo4 <- (hf - hi) * 60 + (mf - mi) + 1 //cálculo dos minutos q a ligação consumiu no 4º intervalo
fimse
fimse
fimse
//
// ligação que começa em um dia e termina no dia seguinte (AJUDA)
//
fimse
valortempo1 <- tempo1 * (vb - vb * 50 /100)
valortempo2 <- tempo2 * (vb - vb * 0 / 100)
valortempo3 <- tempo3 * (vb - vb * 30 / 100)
valortempo4 <- tempo4 * (vb - vb * 40 / 100)
valortotal <- valortempo1 + valortempo2 + valortempo3 + valortempo4
escreval("Intervalo de 0h a 8h59 ", tempo1, " - R$ ", valortempo1)
escreval("Intervalo de 9h a 17h59: ", tempo2, " - R$ ", valortempo2)
escreval("Intervalo de 18h a 20h59: ", tempo3, " - R$ ", valortempo3)
escreval("Intervalo de 21h a 23h59: ", tempo4, " - R$ ", valortempo4)
escreval("Duraçao total ligação: ", (tempo1 + tempo2 + tempo3 + tempo4) div 60, " horas e ", (tempo1 +
tempo2 + tempo3 + tempo4)%60, " minutos")
escreval("Valor total: ", valortotal)