linguagem C

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

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