Ir ao conteúdo
  • Cadastre-se
PabloPetelak

Diferença de Datas

Recommended Posts

Olá, estou enfrentando alguns probleminhas para fazer meu código, preciso fazer um programa que mostre o resultado da diferença de dias entre uma primeira e segunda data inserida, não manjo muito de programação em C++, eis o que eu fiz:

Biblioteca \o


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#ifndef __MinhaBiblioteca_h__
#define __MinhaBiblioteca_h__

typedef Mes;
typedef struct Data
{
unsigned int Dia;
unsigned int Mes;
unsigned int Ano;
}Data;


/* #define dia 0
#define mes 1
#define ano 2

// Declaração das funções necessárias para o main.
int validar (int data[2] int data2[2])
{
if(data[dia] > 31 || data[mes] > 12 || data[ano] >2100)
printf("Data inserida invalida");
else
return NULL;
}
int diferenca (int data[2], int data2[2]) // Vetor data com 3 índices para fazer a diferença entre as datas onde data[0]=Dia, data[1]=mes, data[2]=ano
{

*/

typedef
enum _Mes
{
Jan=0,
Fev,
Mar,
Abr,
Mai,
Jun,
Jul,
Ago,
Set,
Out,
Set,
Nov,
Dez,
} Mes;

unsigned int NumeroDiasDoMes( Mes mesteste, Data Ano)
{
switch (mesteste)
{
case Jan:
case Mar:
case Mai:
case Jul:
case Ago:
case Out:
case Dez:
return 31;
break;
case Abr:
case Jun:
case Set:
case Nov:
return 30;
break;
case Fev:
return 28;
break;

}
#endif

E também parte do Main:


#include "minhabiblioteca.h"
#include <stdio.h>
#include <stdlib.h>

/* void main()
{
int data[2];

printf("Insira a primeira data no formato dd/mm/aaaa: %d / %d / %d\n");
scanf("%d %d %d",&data[0],data[1],data[2]);
-> Verificação se é bisexto:
Se for divisível por 400, então É bissexto;
Senão, se for divisível por 100, então NÃO É bissexto;
Senão, se for divisível por 4, então É bissexto;
Senão, não é bissexto.
*/

void main()
{
Data start;
Data end;
int Teste;
printf("Insira os dados referente a primeira data: \n");
printf("Insira a dia no formato dd/ : \n");
scanf("%d",&start.Dia);
printf("Insira a mes no formato dd/'mes' : \n");
scanf("%d",&start.Mes);
printf("Insira o ano no formato dd/mes/aaaa : \n");
scanf("%d",&start.Ano);
printf("Insira os dados referente a segunda data: \n");
printf("Insira a dia no formato dd/ : \n");
scanf("%d",&end.Dia);
printf("Insira a mes no formato dd/'mes' : \n");
scanf("%d",&end.Mes);
printf("Insira o ano no formato dd/mes/aaaa : \n");
scanf("%d",&end.Ano);
Teste=NumeroDiasDoMes(start.Dia,start.Ano);
printf("%d",Teste);
system("pause");
}

A minha dúvida a princípio é ao chamar a função "NumeroDiasDoMes", porque é que ele não está fazendo a verificação e me retornando o número de dias do mês?

Desde já agradeço.

Esqueci de tirar a parte que está entre */ e /*

Desconsiderem por favor ... :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×