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

linguagem C

Discussão em 'Programação' iniciada por purple_comma, 4 de Dezembro de 2008. (Respostas: 3; Visualizações: 1099)

  1. gente incrivel

    alguem me pode ajudar aqui num programa, o meu professor pediu nos para fazer um programa de diferenca entre duas datas, até ai tudo bem. mas agora ele pediu nos para fazer a diferenca entre duas horas..

    para incorporar no programa das datas...

    exemplo dia1 - 1\1\2000 as 12:00
    dia 2 - 1\1\2009 as 13:00

    fazer a diferenca entre essas duas datas de dias e horas

    aqui esta o meu programa das datas

    Código:
    #include <stdio.h>
     
    main () {
     
    int dia1,dia2,mes1,mes2,ano1,ano2;
     
    printf("Qual o dia da primeira data? ");
     
    scanf (" %d", &dia1);
     
    printf("Qual o mes da primeira data? ");
     
    scanf (" %d", &mes1);
     
     
    printf("Qual o ano da primeira data? ");
     
    scanf (" %d", &ano1);
     
     
     
    printf("Qual o dia da segunda data? ");
     
    scanf (" %d", &dia2);
     
     
    printf("Qual o mes da segunda data? ");
     
    scanf (" %d", &mes2);
     
     
     
    printf("Qual o ano da segunda data? ");
     
    scanf (" %d", &ano2);
     
    printf(" %d", difdata(dia1,dia2,mes1,mes2,ano1,ano2));                    
     
    }
     
    int bissexto (int ano)
     {
     
            if((ano%4==0 && ano%100!=0) || ano%400==0)
     
                return 1;
            else 
                return 0;
        }
     
     
    int diasmes (int mes, int ano){       
          int dias;  
     
        switch(mes){
     
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
     
                dias= 31;
     
                break;
     
            case 4:
            case 6:
            case 9:
            case 11:
     
                dias= 30;
     
                break;
     
            case 2:
     
                if(bissexto(ano)==1)
     
                    dias= 29;
                else
                    dias= 28;
     
    break;            
            default : dias= 0;
     
            break ;
     
        }
     
        return dias;
     
    }
     
    int diasfimmes (int dia, int mes, int ano)
        {
            return diasmes(mes, ano) - dia;
        }
     
     
     
    int mesesintermedios(int mes1, int mes2, int ano)
               {
     
               int i; 
               int soma=0;
     
     
               for (i=mes1+1 ; i<=mes2-1 ; i++) {
     
                   soma = soma + diasmes(i,ano);
               }
     
               return soma;
     
               }
     
    int diasano (int ano)
     
    {
     
    if (bissexto(ano))
     
    return 366;
     
    else
     
    return 365;
     
    }
     
    int anosintermedios (int ano1,int ano2)
     
    {
     
    int i; int soma=0;
     
    for (i = ano1+1; i <= ano2 - 1; i++) {
     
    soma = soma + diasano(i);
    }
    return soma; 
     
    }
     
    int difdata (int dia1,int dia2,int mes1,int mes2,int ano1,int ano2)
     
    {
     
    if (ano1==ano2 && mes1==mes2)
     
    return dia2-dia1;
     
    else
     
    if (ano1==ano2)
     
    return diasfimmes(dia1,mes1,ano1) + mesesintermedios (mes1,mes2,ano1)+dia2;
     
    else
     
    return diasfimmes (dia1,mes1,ano1) + mesesintermedios (mes1,13,ano1) + anosintermedios(ano1,ano2) + mesesintermedios(0,mes2,ano2) + dia2; }
     
    
    Alguem me pode ajudar :):offtopic:
     
    Última edição: 7 de Dezembro de 2008
  2. Tomb4000

    Tomb4000 Power Member

    Ja leste o que disseste?
     
  3. ld50

    ld50 Power Member

    Eu sugeria que pegasses no primeiro programa ("programa de diferenca entre duas datas") e o entregasses como sendo o segundo "diferenca entre duas datas".
     
  4. era entre duas horas...
     

Partilhar esta Página