Ir ao conteúdo
  • Cadastre-se

Ajuda para criar uma pequena parte de um algoritmo para validar uma data


Ian Santos

Posts recomendados

Olá, preciso criar um algoritmo que valide uma data (dia, mês e ano), de modo que ele não permita datas como por exemplo como 31 de fevereiro ou 31 de abril. Eu consegui desenvolver uma parte desse algoritmo em Visualg, mas não consegui encontrar uma forma de colocar os comandos para impedir esses tipos de datas inválidas, eu agradeceria muito se alguém pudesse dar uma olhada e me ajudar. E se possível também me ajudar a adicionar uma forma de calcular automaticamente os anos bissextos, mostrando para cada ano que tivesse o mês de fevereiro escolhido se ele terá 28 ou 29 dias no máximo. Obrigado.

algoritmo "E2Q10"vard, m, a: inteiroinicioescreva("Entre com o dia: ")leia(d)se(d < 32) e (d > 0) então   escreva("Entre com o mês: ")senao   se(d > 31) ou (d < 1) então      repita         escreval         escreval("-------------")         escreval("Dia inválido.")         escreval("-------------")         escreval         escreva("Entre com o dia: ")         leia(d)      ate(d < 32) e (d > 0) então      escreva("Entre com o mês: ")   fimsefimseleia(m)se(m < 13) e (m > 0) então   escreva("Entre com o ano: ")senao   se(m > 12) ou (m < 1) então      repita         escreval         escreval("-------------")         escreval("Mês inválido.")         escreval("-------------")         escreval         escreva("Entre com o mês: ")         leia(m)      ate(m < 13) e (m > 0) então      escreva("Entre com o ano: ")   fimsefimseleia(a)se(a > 0) então   escreval   escreval   escreval("-------------------------------------")   escreval(d," /",m," /",a," - É uma data válida.")   escreval("-------------------------------------")   escrevalsenao   se(a < 1) então      repita         escreval         escreval("-------------")         escreval("Ano inválido.")         escreval("-------------")         escreval         escreva("Entre com o ano: ")         leia(a)      ate(a > 0) então      escreval      escreval("-------------------------------------")      escreval(d," /",m," /",a," - É uma data válida.")      escreval("-------------------------------------")      escreval   fimsefimsefimalgoritmo
Link para o comentário
Compartilhar em outros sites

Bom dia amigo, tenho algumas dicas para você:

 

- Comece sempre pela validação do ano, assim você já verifica se o ano é bissexto, bem mais simples.

 

- Pesquise por ano bissexto no Google, e na própria página da Wikipedia já mostra como você pode calcular se um ano é ou não bissexto.

 

- Você realmente precisa validar os valores um por um? Ficaria mais simples se você solicitasse os dados consecutivamente, sem interrupções, assim já contaria com todos os dados para calcular se a data é válida ou não.

 

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...