Ir ao conteúdo
  • Cadastre-se

Diferença de Datas


PabloPetelak

Posts recomendados

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

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...