1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

datas em c

Discussão em 'Programação' iniciada por snis, 29 de Setembro de 2007. (Respostas: 4; Visualizações: 613)

  1. snis

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

    Conde Power Member

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

    snis Power Member

    ehh

    pois, mas n me interessa saber se sao iguais..

    queria era saber se o dia 2, era depois do dia 1

    :P
     
  4. LaNgSuYaR

    LaNgSuYaR Power Member

    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!
     
  5. uterrorista

    uterrorista Suspenso

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

Partilhar esta Página