Logo Hardware.com.br
DarkWay
DarkWay Zerinho Registrado
678 Mensagens 1 Curtida

Como validar data

#1 Por DarkWay 18/10/2007 - 01:21
Olá
Eu estou precisando fazer um trab. ond eu coloco a data de locaçao do filme, e depois coloco a data de devolução do filme, c\ isso será calculado a qtde de dias q o filme ficou c\ o cliente.
Porem eu ñ consigo fazer issso, por causa dos meses de 30 e 31 dias, de ano bissesto, e o cliente pd ficar qnto tempo quiser c\ o filme, se ele quiser ele pd ficar anos c\ o filme.
Gostaria de saber se alguem poderia me ajudar c\ esse código ou se já tem o código.
Esse prog. na faculdade teria q ser desenvolvido em Pascal ou C, mas eu consigo entender o código estando em Delphi ou C++. O código em qualquer uma dessas linguagens já ajuda.
Obrigado
Responder
franks_feat
franks_feat Membro Senior Registrado
289 Mensagens 9 Curtidas
#2 Por franks_feat
18/10/2007 - 08:42
O problema é que vc tem que pensar algoritmicamente(*Palavrinha difícil de falar*) vc poderia tentar "pegar" cada campo como variavel separada:
exemplo:
int dia, mes, ano;
depois vc testa o mes com um switch
switch(mes)
case 1:
if dia < 0 || dia > 31
printf("Dia inválido");
case 2:
if dia < 0 || dia > 28
printf("Dia inválido")
.......
default:
printf("Isto não é um mes!!!!!");

mas isso é considerando que não existe ano bissexto.......
bota a cabeça pra funcionar que vc vai conseguir fazer numa boa....
isso é só questão de pensar um pouco,só o que vc tem que fazer é sair um pouco da frente do pc e raciocinar....
raivoso.png
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#3 Por tpcvasco
18/10/2007 - 13:01
Os meses q têm 30 ou 31 dias são fixos, vc pode programar isso no seu aplicativo. Veja a tabela desse link: http://pt.wikipedia.org/wiki/Calend%C3%A1rio_gregoriano
Assim tendo o mês inicial e final, vc consegue calcular quantos meses entre eles têm 30 e/ou 31 dias, e assim contar os dias.
E tendo o ano inicial e o final, vc consegue calcular quantos anos bissextos existem entre eles.
Com esses dados, vc consegue calcular o número total de dias de forma precisa.
Uma outra opção é vc procurar por alguma biblioteca de calendários já pronta, mas aí vc vai perder mto do aprendizado, se é esse seu objetivo.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
GBonzani
GBonzani Super Participante Registrado
509 Mensagens 11 Curtidas
#5 Por GBonzani
18/10/2007 - 16:26
Fazendo "no braço", pode ser assim :


#include <stdio.h>
int main()
{
int meses[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int dia, mes, ano;

do{
printf("Digite o dia : &quot;
scanf("%d",&dia); fflush(stdin);
}while(dia<1 || dia>31);

do{
printf("Digite o mes : &quot;
scanf("%d",&mes); fflush(stdin);
}while(mes<1 || mes>12);

do{
printf("Digite o ano : &quot;
scanf("%d",&ano); fflush(stdin);
}while(ano<1900); //COLOQUE QUALQUER LIMITE

if(((ano%4==0)&&(ano%100!=0)) || (ano%400==0)) //se eh ano bissexto
meses[1] = 29;

if(dia>meses[mes-1])
printf("\nO mes %d do ano de %d nao tem %d dias!!!",mes, ano, dia);
else
printf("\nData valida!&quot;

getchar();
return(0);
}



Aqui nesse outro tópico tem uma solução pra contagem de dias, pra hora da cobrança do aluguel :
https://www.hardware.com.br/comunidade/programa-string/782804/1.html

Espero ter ajudado. Abraço,
Gabriel.
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal