TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Diferença Entre Datas

Dissertações: Diferença Entre Datas. Pesquise 861.000+ trabalhos acadêmicos

Por:   •  5/3/2014  •  3.253 Palavras (14 Páginas)  •  280 Visualizações

Página 1 de 14

//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

...

Baixar como (para membros premium)  txt (8.4 Kb)  
Continuar por mais 13 páginas »
Disponível apenas no TrabalhosGratuitos.com