Programación General > C/C++

 Validar Fecha en C (struct)

(1/1)

benekid:
Saludos compañeros, tengo el siguiente codigo... pero no me funciona ! =S
Creo que lo tengo todo bien... pero no me compila (en Code::Blocks 8.02)

Y la verdad... no se que hacer... les dejo el code:


--- Código: Text ---#include <stdio.h>#include <windows.h>#include <stdlib.h>#include <conio.h> #define es_anio_bisiesto(y)  ((((y)%400)==0)||((((y)%4)==0)&&(((y)%100)!=0))) struct date fecha;  enum bool{    false = 0,    true = 1}; enum Mes{   Enero = 1,   Febrero = 2,   Marzo = 3,   Abril = 4,   Mayo = 5,   Junio = 6,   Julio = 7,   Agosto = 8,   Septiembre = 9,   Octubre = 10,   Noviembre = 11,   Diciembre = 12};  int dias_en_el_mes (int y, int m){    const int dias[12] = { 31, 28, 31, 30, 31, 30,                           31, 31, 30, 31, 30, 31 };   int resultado;    resultado = dias[m-1];    if ( m == Febrero && es_anio_bisiesto ( y ) )      resultado++;    return resultado;}  bool es_fecha_valida ( struct date fecha ){   if ( fecha.da_mon < Enero || fecha.da_mon > Diciembre )      return false;    if ( fecha.da_day < 0 || fecha.da_day >=             dias_en_el_mes ( fecha.da_year, fecha.da_mon ) )      return false;    return true;} void main(){   struct date fecha1, fecha2;    fecha1.da_day=1;   fecha1.da_mon=6;   fecha1.da_year=2006;    fecha2.da_day=30;   fecha2.da_mon=2;   fecha2.da_year=2006;    clrscr();    if(es_fecha_valida(fecha1))      printf("La fecha1 es validan");   else      printf("La fecha1 NO es validan");    if(es_fecha_valida(fecha2))      printf("La fecha2 es valida");   else      printf("La fecha2 NO es valida");    getch();} 
Saludos y gracias

Keiga:
tienes varios errores, pero solo vi uno xD
al final del programa tus if no tienen llaves "{ }"

benekid:
Muchas gracias por el esfuerzo...ya me ha funcionado y ahora tengo la siguiente duda:
Quiero pasar estos datos (dados que son int) a char, dado que los quiero meter en otra estructura diferente

y tengo esto:


--- Código: Text ---struct data info; itoa (info.dia,10);itoa (info.mes,10);itoa (info.ano,10); info_datos[i].dia=info.dia;info_datos[i].mes=info.mes;info_datos[i].ano=info.ano; 
pero no se que estoy haciendo mal... creo que es por la funcion itoa

(he cambiado los nombres respecto a la funcion de arriba, pero hace lo mismo)

ProfesorX:
la verdad no se que tipo de datos tienes en struct data ya que no muestras la estructura, pero aun asi, me parece que te falta un parametro en la funcion itoa() para que te compile correctamente, te dejo un enlace a la documentacion:

http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/

Saludos :)

Navegación

[0] Índice de Mensajes

Ir a la versión completa