Ayuda con un programa que calcule la diferencia entre dos fechas

Iniciado por davisinful, 9 Noviembre 2011, 22:55 PM

0 Miembros y 1 Visitante están viendo este tema.

davisinful

HOLA AMIGOS NECESITO REALIZAR UN PROGRAMA QUE CALCULE EL NUMERO DE DIAS UTILIZANDO FUNCIONES UNICAMENTE PARA EL AÑO 2011
SE DEBERAN VALIDAR LOS MESES Y EL AÑO OJO 2011
PERO PARA LA FECHA (DIA,MES,AÑO) Y PARA LA FECHA 2 DEBO UTILIZAR LA MISMA FUNCION ES UN TRABAJO Q MI PROFESOR ME ENVIO LO CUAL NO COMPRENDO MUCHO:
EJEM HOY ES 9 DE SEP DEL 2011 FECHA 1
        OTRA FECHA 7 DE SEP DEL 2011 LA DIFERENCIA DE DIAS ES 2 DIAS


AQUI LES DEJO UN PROGRAMA QUE ES SIMILIAR AL PEDIDO Y QUE TIENE LA METODOLOGIA QUE EL PROFESOR APLICA. PORFA VOR AYUDA. GRACIAS

#include <stdio.h>

int validadia ();
int validames ();
int validaanio ();
int dias(int d, int m);
void nombredia(int acu);
void nombremes (int mm);
void main ()
{
  int d,m,a,acudias;
  d=validadia();
  m=validames();

  while ((m==2)&&(d>28))
  {
    printf ("Febrero solo tiene 28 días... Ingrese día ==>  ");
    scanf("%d",&d);
  }



  while (((m==4)||(m==6)||(m==9)||(m==11))  &&(d>30))
  {
    printf ("Estos mese solo tienen 30 días... Ingrese día ==>  ");
    scanf("%d",&d);
  }
  a=validaanio();

  acudias=dias(d,m);

  acudias%=7;

  nombredia(acudias);

  printf ("\n Fecha ingresada dia %d mes ",d);
  nombremes(m);
  printf("año %d",a);
}

int validadia ()
{
  int dd;
  do{
  printf("Ingrese dia ==>  ");
  scanf("%i",&dd);
  }while ((dd>31)||(dd<0));
  return dd;
  }
int validames ()
{
  int mm;
  do{
  printf("Ingrese mes ==>  ");
  scanf("%i",&mm);
  }while ((mm>12)||(mm<0));
  return mm;
}
int validaanio ()
{
  int aa;
  do{
  printf("Ingrese año ==>  ");
  scanf("%i",&aa);
  }while (aa!=2011);
  return aa;
}
int dias (int dd, int mm)
{
  int acu=0;

  switch (mm)
  {
    case 1: acu=dd;
       break;
    case 2: acu=31+dd;
       break;
    case 3: acu=59+dd;
       break;
    case 4: acu=90+dd;
       break;
    case 5: acu=120+dd;
       break;
    case 6: acu=151+dd;
       break;
    case 7: acu=181+dd;
       break;
    case 8: acu=212+dd;
       break;
    case 9: acu=243+dd;
       break;
    case 10: acu=273+dd;
       break;
    case 11: acu=304+dd;
       break;
    case 12: acu=334+dd;
       break;

  }
  return acu;
}


void nombredia(int acu)
{
  switch (acu)
  {
    case 3: printf ("Lunes");
       break;
    case 4: printf ("Martes");
       break;
    case 5: printf ("Miercoles");
       break;
    case 6: printf ("Jueves");
       break;
    case 7: printf ("Viernes");
       break;
    case 1: printf ("Sabado");
       break;
    case 2: printf ("Domingo");
       break;
  }
}

void nombremes(int mm)
{
  switch (mm)
  {
    case 1: printf ("Enero");
       break;
    case 2: printf ("Febrero");
       break;
    case 3: printf ("Marzo");
       break;
    case 4: printf ("Abril");
       break;
    case 5: printf ("Mayo");
       break;
    case 6: printf ("Junio");
       break;
    case 7: printf ("Julio");
       break;
    case 8: printf ("Agosto");
       break;
    case 9: printf ("Septiembre");
       break;
    case 10: printf ("Octubre");
       break;
    case 11: printf ("Noviembre");
       break;
    case 12: printf ("Diciembre");
       break;
  }
}

do-while

¡Buenas!

Tu problema es que no quieres pensar. Casi lo tienes hecho. Ahi va una ayuda:

Si tienes cinco manzanas y te quitan tres, ¿Cuantas manzanas te quedan?

Respuesta: 5 - 3 = 2.

Si tengo una fecha y le quito otra, ¿Cuantos dias me quedan?

Respuesta: ...

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!