purple_comma
Membro
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
Alguem me pode ajudar
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; }
Última edição: