Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dirceujs

Calcular datas no Webportugol

Recommended Posts

Olá colegas, estou com um problema que está quebrando minha mente. Preciso contar 500 dias a partir de uma data no português estruturado (webportugol).

 

Sou super iniciante no ramo e já peguei este probleminha, se algum colega tiver um tempinho para dispor algumas dicas ficarei muito satisfeito pela ajuda.

 

A questão envolve isso:

 

um programa para cálculo de datas

onde, informa-se uma data (dd/mm/aaaa) e conta-se x dias para frente e a nova data deverá ser informada no formato (dd/mm/aaaa).

 

É isso!

 

Agradeço imensamente pela ajuda.

 

Dirceu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colegas, usando o modelo abaixo como eu poderia mudá-lo para fazer a contagem de dias a partir da data inicial, ou como no exemplo que segue seria uma data em x dias, por exemplo: 500 dias após a data inicial. Segue o exemplo feito em webportugol.

 

Veja bem, não cheguei a desenvolver a quantidade de dias a partir do exemplo abaixo, somente coloco como exemplo para que os colegas junto comigo, me auxiliem a melhorar esse programa. Dúvidas? Quer ajudar? Por favor, comente.. Meu muito obrigado por qualquer colaboração, é importante para mim. ;)

 

-----------------------------------------------------------------------------

programa datas
declaracoes
inteiro dia, mes, ano, d, m, a, dd, mm, aa, ddd, mmm, aaa
inicio
escreva("\nInforme uma data final no formato: 'DD'MM'AAAA'\n")
leia (dia, mes, ano)

escreva("\nInforme uma data inicial no formato: 'DD'MM'AAAA'\n")
leia (d, m, a)

dd <- d-dia
mm <- m-mes
aa <- a-ano

se (dd < 0) entao
ddd <- 30+dd
mmm <- mm-1
senao
ddd <- dd
mmm <- mm
fimse

se (mm < 0) entao
mmm <- 12+mm
aaa <- aa-1
senao
mmm <- mm
aaa <- aa
fimse

escreva ("\nA diferença de datas é de ",aaa," anos ",mmm," meses e ",ddd," dias.")
fim

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, segue abaixo a íntegra com a solução do meu problema. Quero agradecer pelo imenso apoio que tive de todos. descula a irônia, não pude evitar.

 

-- / --

 

Para quem quiser testar, esse método deve ser aplicado no Webportugol seguindo o link:

 

http://siaiacad17.univali.br/webportugol/

 

Para quem não sabe, esse site fornece uma forma de poder se trabalhar em aula ou em casa (on-line). É uma ferramenta para estudos. Deve-se fazer um login com senha, é bem simples, mas bom para estudos.

 

Copie e cole o conteúdo abaixo no Webportugol.

 

------------------------------------------------------------

programa calculadata
declaracoes
inteiro diames[12], dia, mes, ano, diasasomar, i, diainf, mesinf, anoinf
inicio
/*Declarando valores dos meses, lembrando que
o vetor sempre inicia na posição 0*/
diames[0]<-31 /*janeiro 31 dias*/
diames[1]<-28 /*fevereiro 28 dias ou 29 quando bisexto*/
diames[2]<-31 /*março 31 dias*/
diames[3]<-30 /*abril 30 dias*/
diames[4]<-31 /*maio 31 dias*/
diames[5]<-30 /*junho 30 dias*/
diames[6]<-31 /*julho 31 dias*/
diames[7]<-31 /*agosto 31 dias*/
diames[8]<-30 /*setembro 30 dias*/
diames[9]<-31 /*outubro 31 dias*/
diames[10]<-30 /*novembro 30 dias*/
diames[11]<-31 /*dezembro 31 dias*/
/*Entrada de dados, Dia, Mes, Ano e DiasaMais*/
escreva("Informe o dia de hoje:")
leia(dia)
escreva("\nInforme o mes atual:")
leia(mes)
escreva("\nInforme o ano atual:")
leia(ano)
escreva("\nInforme a quantidade de dias a somar:")
leia(diasasomar)
/*Iniciando as variaveis inf, pois quero armazenar o que o usuario informou
na primeira vez para mostrar no final*/
diainf<-dia
mesinf<-mes
anoinf<-ano
/*Identifica mes atual tirando -1 do mes informado, pois nosso vetor iniciar em 0*/
mes <- mes-1
/*Verifica ano bisexto*/
se (ano mod 400 = 0 ou ano mod 4 = 0 e ano mod 100 != 0) entao
diames[1] <- 29
fimse
/*inicia a contagem dos dias até o limite informado*/
para i<-1 ate diasasomar passo 1
/* verifica se chegou no dia limite do mes de acordo com os limites do vetor*/
se (dia = diames[mes]) entao
/*se chegou no limite, incrementa dia com 1 para começar a contagem novamente*/
dia <- 1
/*verifica se chegou no limite de meses do ano, lembrando que nosso mes 11 corresponde ao mes 12!!!*/
se (mes = 11) entao
/*se chegou no limite do ano, incrementa o ano e bota o mes no 0, que é janeiro no nosso vetor*/
ano <- ano + 1
mes <- 0
/*verifica novamente o ano, pois ele foi incrementado e é necessário verificar se é bisexto novamente*/
se (ano mod 400 = 0 ou ano mod 4 = 0 e ano mod 100 != 0) entao
diames[1] <- 29
senao
diames[1] <- 28
fimse
senao
/*se nao chegou no limite do ano, incrementa o mes normalmente*/
mes <- mes + 1
fimse
senao
/*se nao chegou no limite do mes incrementa dia normalmente*/
dia <- dia + 1
fimse
fimpara
/*soma 1 ao mes para exibir o mes da forma normal*/
mes<- mes+1
/*insere uma quebra de linha para melhorar a visualização e mostra as datas, a informada e a nova data incrementada*/
escreva("\n")
escreva("\nData Informada ",diainf,"/",mesinf,"/",anoinf)
escreva("\nNova Data ",dia,"/",mes,"/",ano)
fim
----------------------------------------------------------------------------

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.