Jueves 14 de Noviembre de 2024, 22:43
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Validar Fecha Y Hora
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Validar Fecha Y Hora (Leído 1382 veces)
claudi_1977
Nuevo Miembro
Mensajes: 1
Validar Fecha Y Hora
«
en:
Sábado 10 de Julio de 2004, 01:46 »
0
Amigos, necesito validar la fecha y la hora de un pequeño programa en C.
Lo que pasa es que tengo que recatar la fecha del sistema,
SIN OCUPAR EL COMANDO SYSTEM
, y luego cuando el usuario vaya ingresando el dia el mes y el año que me despliegue un mensaje que diga fecha incorrecta o algo, eso lo se hacerk pero mi duda es como valido los meses que tienen 30 31 o 28 dias? LES JURO QUE ESTOY SUPER PERDIDA.
Tengo que hacer lo mismo con la hora.
Miren aca pego el codigo, APARTE ME SALE UN ERROR MUY GRAVE QUE NO SE DE QUE SE TRATA, POR FAVOR SI LO PUEDEN VER Y AYUDARME LES ESTARE ETERNAMENTE AGRADECIDA
Si alguien sabe o quiere ubicarme mas rapido para ayudarme mi correo es
claudi_06051977@hotmail.com
gracias denuevo
el codigo es
#include<dos.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct date fecha;
struct time hora;
int ValidarDia();
int meses[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int fnc_fecha();
int dia;
void fnc_hora();
int main()
{
char opcion;
do
{
clrscr();
gotoxy(35,2);
printf("RUTINA DE FECHA\n");
gotoxy(25,10);
printf("1.- Fecha \n");
gotoxy(25,12);
printf("2.- Hora \n");
gotoxy(25,14);
printf("3.- Salir\n ");
opcion=getchar();
if (opcion=='1')
{
if(fnc_fecha()==0)
{
printf("\nError El mes '%d' solo admite %d dias",fecha.da_mon,meses[fecha.da_mon-1]);;
printf("\n pulsar una tecla para continuar ....");
getch();
}
}
else if(opcion=='2')
fnc_hora();
}
while(opcion!='3');
return 1;
}
int fnc_fecha()
{
clrscr();
getdate(&fecha);
printf("Su fecha actual es: %d-%d-%d",fecha.da_day, fecha.da_mon,fecha.da_year);
printf("\nIngrese nuevo dia: ");
scanf("%d",&dia);
printf("\nIngrese nuevo mes: ");
scanf("%d",&fecha.da_mon);
printf("\nIngrese nuevo año: ");
scanf("%d",&fecha.da_year);
if(ValidarDia())
fecha.da_day=dia;
else
return 0;
setdate(&fecha);
printf("\nSu nueva fecha es: %d-%d-%d\n",fecha.da_day, fecha.da_mon,fecha.da_year);
system("pause");
return 1;
}
void fnc_hora()
{
clrscr();
gettime(&hora);
printf("Su hora actual es: %d:%d:%d",hora.ti_hour, hora.ti_min,hora.ti_sec);
printf("\nIngrese nuevos segundos: ");
scanf(" %d",hora.ti_sec);
printf("\nIngrese nuevos minutos: ");
scanf("%d",&hora.ti_min);
printf("\nIngrese nueva hora: ");
scanf("%d",&hora.ti_hour);
settime(&hora);
printf("\nSu nueva hora es: %d:%d:%d\n",hora.ti_hour,hora.ti_min,hora.ti_sec);
system("pause");
}
int ValidarDia()
{
if(dia<=meses[fecha.da_mon-1])
return 1;
else
return 0;
}
Tweet
-SB-
Miembro activo
Mensajes: 60
Re: Validar Fecha Y Hora
«
Respuesta #1 en:
Sábado 10 de Julio de 2004, 15:30 »
0
A ver, en cuanto lo que has dicho de los meses, puedes hacer algo asi, define un array en el que cada elemento sea un mes, por ejemplo:
Código: Text
V[13] = {0, 31, 29 /*o 28, depende el año*/, 31, 30, 31,30, 31, 31, 30, 31, 30, 31}
Si quieres saber los dias de enero por ejemplo deberas poner V[1], si quieres los de agosto V[8], y asi con todos los meses..
Espero que te haya servido de algo.
Un saludo!
Pd: Cuando pastees un codigo ayudaria que quites las cosas menos relevantes y lo hagas con el tag CODE para facilitar su lectura, yo los que estan asi ni los miro..
Noel Solw
Miembro activo
Mensajes: 81
Re: Validar Fecha Y Hora
«
Respuesta #2 en:
Sábado 17 de Julio de 2004, 11:00 »
0
A continuacion adjunto una funcion para validar una fecha :
const int days[2][13] = {{365,31,28,31,30,31,30,31,31,30,31,30,31},// comunes
{366,31,29,31,30,31,30,31,31,30,31,30,31}};// bisiestos
struct Date
{
int dd, mm, yy;
}; // STRUCT DATE
int CheckDate(Date a)
{
if(a.yy < 1900 || a.yy > 2005)
return 0; // fuera de los limites, opcional
if(a.mm < 1 || a.mm > 12)
return 0;// numero de mes incorrecto
int k = (a.yy % 4 == 0) && (a.yy != 2000);// comun = 0,bisiesto = 1
if(a.dd < 1 || a.dd > days[k][a.mm])
return 0;// numero de dia incorrecto
return 1;// la fecha es aceptada
} // CHECK DATE
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Validar Fecha Y Hora