Diferença Entre Datas
Dissertações: Diferença Entre Datas. Pesquise 861.000+ trabalhos acadêmicosPor: sapeca • 5/3/2014 • 3.253 Palavras (14 Páginas) • 280 Visualizações
//PSEUDO CÓDIGO
algoritmo "calcularDiferencaEntreDatas"
// Função : Algoritmo responsável por calcular a diferença entre duas datas
// O retorno deverá ocorrer em dias
// Deve haver consideração de ano bissexto, bem como a varidade de
// dias em um mês
// Seção de Declarações
var dia1, mes1, ano1: INTEIRO
dia2, mes2, ano2: INTEIRO
difDias: INTEIRO
aux, i: INTEIRO
inicio
// Seção de Comandos
//Inicializar valores
difDias <- 0
//Solicitar valores de entrada
ESCREVAL("Informe dados da DATA 1")
ESCREVA("Dia: ")
LEIA(dia1)
ESCREVA("Mes: ")
LEIA(mes1)
ESCREVA("Ano: ")
LEIA(ano1)
ESCREVAL()
ESCREVAL("Informe dados da DATA 2")
ESCREVA("Dia: ")
LEIA(dia2)
ESCREVA("Mes: ")
LEIA(mes2)
ESCREVA("Ano: ")
LEIA(ano2)
//Verificar se as duas datas são iguais. Se forem, a diferença de dias é zero
SE (dia1 = dia2) E (mes1 = mes2) E (ano1 = ano2) ENTAO //SE1
ESCREVAL("As datas informadas sao iguais. A diferenca de dias eh zero.")
SENAO
//Se as datas forem diferentes, garantir que a data maior estará nas
//variáveis 1, realizando troca de valores de variáveis, se necessário
SE ( ( (ano1 = ano2) E (mes1 = mes2) E (dia1 < dia2) ) OU ( (ano1 = ano2) E (mes1 < mes2) ) OU (ano1 < ano2) ) ENTAO //SE2
aux <- ano1
ano1 <- ano2
ano2 <- aux
aux <- mes1
mes1 <- mes2
mes2 <- aux
aux <- dia1
dia1 <- dia2
dia2 <- aux
FIMSE //SE2
//Situação 1: Mesmo ano, mesmo mês -> A diferença é apenas de dias
SE (ano1 = ano2) E (mes1 = mes2) ENTAO //SE3
difDias <- dia1 - dia2
SENAO
//Situação 2: Mesmo ano, meses diferentes -> A diferença envolve meses
//e dias, sendo dada por: quantidade de dias restantes do mês da data 1
//+ quantidade de dias do mês da data 2 + quantidade de dias total de
//cada mês que existir entre os dois meses informados
SE (ano1 = ano2) ENTAO //SE4
//Obtem quantidade de dias a contar, da maior data (variável 1)
difDias <- dia1
//Obtem quantidade de dias, considerando cada mês, com exceção do
//do primeiro e do último mês -> Somatório acumulativo de dias por mês
PARA i DE (mes2 + 1) ATE (mes1 - 1) FACA
//se for meses de janeiro, março maio, julho, agosto, outubro,
//dezembro contará com 31 dias para o mês
ESCOLHA (i)
CASO 1, 3, 5, 7, 8, 10, 12
difDias <- difDias + 31
//Se for mês de fevereiro, contará com 28 ou 29 dias
CASO 2 //precisa considerar situação do ano bissexto
SE ( ((ano1 % 400) = 0) OU (((ano1 % 100) <> 0) E ((ano1 % 4) = 0)) ) ENTAO
difDias <- difDias + 29
SENAO
difDias <- difDias + 28
FIMSE
//se forem os outros meses, contará com 30 dias
OUTROCASO
difDias <- difDias + 30
FIMESCOLHA
FIMPARA
//Obter quantidade de dias a contar, da menor data (variável 2)
//Essa quantidade será fornecida pela quantidade de dias do mês
...