datas em c

snis

Power Member
precisava de uma ajuda

tendo a seguinte estrutura:

struct Data{

int dia, mes, ano;

};

struct Data dia1;
struct Data dia2;

alguem sabe como posso comprar a data do dia1 com dia 2
 
Poderias usar o memcmp(), mas dado que nem sempre é fiável, a unica maneira que tens para comparar estruturas é mesmo escrever uma função que compara cada campo da estrutura:

Código:
int compara (Data x, Data y) {

     if (x.ano == y.ano && x.mes == y.mes && x.dia == y.dia)
          return 0;
     else
          return 1;
}

Se forem iguais retorna 0, caso contrário retorna 1.
 
para isso tens duas hipoteses....

ou fazes os calculos célula a célula (ano, dia, mês) e tendo em conta que se for dia 30 abril (p.ex), o dia seguinte será 1 maio e por aí....

ou pela maneira mais simples, calculando o número de dias da data que te é fornecida (1 ano = 365/366 dias, 1 mes = 28/29/30/31 dias). Claro que em ambas tens que ter o cuidado de verificar se é um ano bissexto ou normal, e o número de dias do presente mês....

A meu ver, a segunda maneira é mais simples de fazeres, no entanto menos optimizada, i guess!
 
o teu objectivo é só mesmo saber se a data 2 é posterior à data 1 ??

se assim for comparas 1º o ano, se for senão for igual tens logo a resposta,
se for igual(ano), comparas o mês, se este não for igual tb tens logo a resposta,
se for igual(mês) comparas o dia e obtens a resposta.

o algoritmo é este. se tiveres dificuldade diz qqcoisa que eu coloco aqui algum código..
 
Back
Topo