Jump to content

Validar as datas


Alvess
 Share

Recommended Posts

olá Portugal a programar!

Tenho aqui o problema sobre uma funçãopara validar as datas,

tenho aqui o;

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct {
    int Dia;
    int Mes;
    int Ano;
    }data;

typedef struct pessoa
{
    char Nome[100];
    int Numero;
    char Curso[50];
    float Classificacao;
    data Nasc;
}pessoa;

void Validar(struct data) {
     int Dia;
     int Mes;
     int Ano;
     if(Dia=1 || Dia<=31 && Mes=1 || Mes<=12 && Ano>=1950) {
            if((mes == 1) || (mes == 3) || (mes == 5) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 12))
                printf("mes de 31 dias");
            else
                if(mes==2)
                    if(((ano % 4) == 0) && ((ano % 100) != 0) || ((an0 % 400) == 0))
                        printf("mes de 29 dias");
                    else
                        printf("mes de 28 dias");
                else
                    printf("mes de 30 dias");
                    }
                return 1;
    else {
    printf("Data inválida");
    return 0;
     
void Inserir(pessoa *ptr)
{
    printf("Qual o Nome        :\n");
    gets(ptr->Nome);
    printf("Qual o Numero      :\n");
    scanf("%d", &ptr->Numero);
    printf("Qual o curso       :\n");
    gets(ptr->Curso);
    printf("Qual a Classificacao:");
    scanf("%f", &ptr->Classificacao);
    printf("Qual a Data Nascim   :\n");
    scanf("%d %d %d",&ptr->Nasc.Dia, &ptr->Nasc.Mes, &ptr->Nasc.Ano);
}

void Mostrar(struct pessoa x)
{
     printf("Nome                    :%s\n",x.Nome);
     printf("Numero                  :%d\n",x.Numero);
     printf("Curso                   :%s\n",x.Curso);
     printf("Classificacao           :%s\n",x.Classificacao);

     printf("Data Nasc               :%d/%d/%d\n",x.Nasc.Dia,x.Nasc.Mes,x.Nasc.Ano);
}

Por favor ajude-me 😞

Link to comment
Share on other sites

Provavelmente não tens utilizado muito o fórum... mas coloca-te nos sapatos dos outros utilizadores.

Chegam aqui, deparam-se com uma linha a dizer que tens um problema a validar datas e outra a dizer ajudem-me, entre elas código... ora, como a maior parte dos utilizadores do fórum gosta de ajudar, mas tem mais que fazer, muito provavelmente não se darão ao trabalho de ler o código todo sem saber qual exactamente é o problema. O que é que tu fazias? Como podes ajudar alguém se não sabes qual é o problema que aflige a outra pessoa?

Já se tu tivesses dito qual era o problema específico que estás a ter, muito provavelmente haveria quem, sem olhar para o código completo te dissesse o que estava mal...

Assim, arriscas-te a não teres ajuda nenhuma ou muito pouca por não seres específico no que pretendes.

De repente, e sem me dar ao trabalho de compilar isto encontrei vários erros:

- A função validar está toda mal formatada com chavetas a faltar em vários ifs e também a última chaveta que fecha a função. Para ficar correcto, seria algo como:

void Validar(struct data) {
     int Dia;
     int Mes;
     int Ano;
     if(Dia==1 || Dia<=31 && Mes=1 || Mes<=12 && Ano>=1950) {
            if((mes == 1) || (mes == 3) || (mes == 5) || (mes == 5) || (mes == 7) || (mes ==  || (mes == 10) || (mes == 12))
                printf("mes de 31 dias");
            else
                {
                if(mes==2)
                    {
                    if(((ano % 4) == 0) && ((ano % 100) != 0) || ((an0 % 400) == 0))
                        printf("mes de 29 dias");
                    else
                        printf("mes de 28 dias");
                     }//fecho if mes ==2
                 else
                    printf("mes de 30 dias");
                 }//fecho do else mes ==1
                return 1;
    }//fecho do if Dia ==!
    else {
            printf("Data inválida");
            return 0;
            }
}//fim da função.

- No primeiro if da função validar, tu definias o valor dia "=" em vez de testares "==". Já está corrigido na função em cima.

- Definiste as variáveis Ano, Mes, Dia... em vários ifs utilizas as variáveis ano, mes, dia... o C é case sensitive, logo ou é uma ou outra.

- Falta-te a função main(), ou não a quiseste postar?

include <ai se te avio>

Mãe () {

}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.