Lunes 18 de Noviembre de 2024, 04:46
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++
»
C++ Builder
(Moderador:
Eternal Idol
) »
Manejo De Fechas
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Manejo De Fechas (Leído 2361 veces)
Devilcpc
Miembro activo
Mensajes: 90
Manejo De Fechas
«
en:
Miércoles 27 de Octubre de 2004, 20:12 »
0
Buenas
Se me ha presentado un pequeño problemita, resulta q estoy haciendo un programa tipo una agenda entre los cuales se guardan las fechas de cumpleaños de mis amigos en una base de datos, en la pantalla principal el programa debe decir si es el cumpleaños de alguien hoy (eso es facil y lo pude hacer), pero la parte q no me sale es calcular cual seria el proximo cumpleaños
la base de datos cuenta con 3 campos separados:
Dia de nacimiento (NacDia), Mes de nacimiento (NacMes), Año de nacimineto (NacAño);
la fecha actual la tomo con una struct tm, por lo q obtengo por separado el DiaActual, MesActual y AñoActual
se me complica el tema alrealizar las operaciones matematicas para calcular el prox cumpleaños, ya q por ejemplo de diciembre a enero hay 1 solo mes de diferencia pero matematicamente hay 11 (12-1 = 11)
si a alguien se le ocurre como hacer q me lo diga, gracias
Saludos
Tweet
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --
Devilcpc
Miembro activo
Mensajes: 90
Re: Manejo De Fechas
«
Respuesta #1 en:
Martes 2 de Noviembre de 2004, 00:26 »
0
esta si se q esta dificil, pero algun genio tiene q haber por aca....
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --
Joss
Nuevo Miembro
Mensajes: 23
Re: Manejo De Fechas
«
Respuesta #2 en:
Martes 2 de Noviembre de 2004, 20:14 »
0
Tengo, Mesactual y por otro lado, mesnac.
Para ver la diferencia en meses, yo haria:
int difer ;
difer=mesNac - Mesactual ;
if ( difer<0 )
difer = difer + 12 ;
Ejemplos:
MesActual = 11 (Noviembre)
Mes NAc= 12 (Diciembre)
difer = 1 mes.
MesActual = 11 (Noviembre)
Mes NAc= 2 (Febrero)
difer = 2 - 11 = -9 +12 = 3 meses.
Ojo con el dia del mes, cuando Mesactual y MesNac coincidan.
De nada.
Devilcpc
Miembro activo
Mensajes: 90
Re: Manejo De Fechas
«
Respuesta #3 en:
Miércoles 3 de Noviembre de 2004, 02:48 »
0
gracias por la ayuda, ahora pruebo y te digo...
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --
carquemo
Miembro activo
Mensajes: 35
Re: Manejo De Fechas
«
Respuesta #4 en:
Jueves 4 de Noviembre de 2004, 21:35 »
0
Hola
No se si te funciono lo de antes, pero aqui te explico una que funciona seguro
se trata de organizar la fecha de manera diferente a la que estamos acostumbrados, al menos los de dia/mes/año, el truco esta en organizarla, al reves, año/mes/dia, EN UN SOLO NUMERO, me explico:
el ejemplo que tu dices de diciembre y enero, si estamos a noviembre de 2004,
los cumpleaños a partir de enero seran ya del 2005, es decir el 04 de enero de 2005 pasaria a ser 20050104, mientras que el de diciembre, como es este año, será (por ejemplo el 25 de diciembre de 2004) 20041225, como puedes ver 20041205 es menor que 20050104, y por eso será el proximo, ¿que como pasas la fecha de "separada" a "junta al reves", asi:
fecha=año*10000 + mes * 100 + dia
cada vez que se produce un cumpleaños, has de
Tenemos dos orejas, dos ojos pero solo una boca, ¿será por algo?
Devilcpc
Miembro activo
Mensajes: 90
Re: Manejo De Fechas
«
Respuesta #5 en:
Sábado 6 de Noviembre de 2004, 03:40 »
0
me parece q se te corto el mensaje, pero entendi lo q queres decir y me gusto, la verdad es q no tube tiempo de probar la otra forma, ahora pruebo las dos y te digo
el otro problema q estoy teniendo es q la struct time, no me devuelve bien el año, yo hice lo sig:
Código: Text
struct tm *DiaActual;
time_t timer;
timer = time (NULL);
DiaActual = localtime(&timer);
y DiaActual->tm_year no me devuelve 2004, me devuelve 104
el resto esta bien
alguien sabe por que?
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --
Joss
Nuevo Miembro
Mensajes: 23
Re: Manejo De Fechas
«
Respuesta #6 en:
Lunes 8 de Noviembre de 2004, 14:20 »
0
... DiaActual->tm_year no me devuelve 2004, me devuelve 104 ...
La funcion trabaja asi. Desde los tiempos del turboC ms-dos, que yo sepa.
No esta mal.
Da el año, desde 1900.
Es decir, para saber el año actual tienes que sumar 1900 al resultado, en tu caso 104, que da 2004, el año actual.
Por cierto, ten cuidado con el campo tm_mon, que da el mes desde el 0 al 11.
Otro campo que puede venirte bien para tu aplicacion es tm_yday, que dice el dia del año en que nos encontramos (desde 0 hasta 365)
Salud
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
C++ Builder
(Moderador:
Eternal Idol
) »
Manejo De Fechas